emv

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

README

emv package

The emv package is an experimental package for handling EMV data. It may have limitations and not suitable for all use-cases. You should carefully evaluate if it fits your needs, and don't hesitate in reaching out if you have any questions or concerns.

If you encounter any bugs or issues, or have feedback on your experience using the package, please let us know. We welcome contributions to improve the package and if you are interesting in helping out, feel free to submit pull requests or open new issue. We hang out in the #iso8583 channel on the Moov Community Slack.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Spec = &field.Spec{
	Length:      999,
	Description: "ICC Data",
	Pref:        prefix.ASCII.LLL,
	Tag: &field.TagSpec{
		Sort: sort.StringsByHex,
		Enc:  encoding.BerTLVTag,
	},
	Subfields: map[string]field.Field{
		"9F01": field.NewString(&field.Spec{
			Description: "Acquirer Identifier",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F40": field.NewString(&field.Spec{
			Description: "Additional Terminal Capabilities",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"81": field.NewString(&field.Spec{
			Description: "Amount, Authorised (Binary)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F02": field.NewNumeric(&field.Spec{
			Description: "Amount, Authorised (Numeric)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F04": field.NewString(&field.Spec{
			Description: "Amount, Other (Binary)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F03": field.NewNumeric(&field.Spec{
			Description: "Amount, Other (Numeric)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F3A": field.NewString(&field.Spec{
			Description: "Amount, Reference Currency",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F26": field.NewString(&field.Spec{
			Description: "Application Cryptogram",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F42": field.NewString(&field.Spec{
			Description: "Application Currency Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F44": field.NewString(&field.Spec{
			Description: "Application Currency Exponent",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F05": field.NewString(&field.Spec{
			Description: "Application Discretionary Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F25": field.NewString(&field.Spec{
			Description: "Application Effective Date",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F24": field.NewString(&field.Spec{
			Description: "Application Expiration Date",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"94": field.NewString(&field.Spec{
			Description: "Application File Locator (AFL)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"4F": field.NewString(&field.Spec{
			Description: "Application Identifier (AID) – card",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F06": field.NewString(&field.Spec{
			Description: "Application Identifier (AID) – terminal",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"82": field.NewString(&field.Spec{
			Description: "Application Interchange Profile",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"50": field.NewString(&field.Spec{
			Description: "Application Label",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F12": field.NewString(&field.Spec{
			Description: "Application Preferred Name",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5A": field.NewString(&field.Spec{
			Description: "Application Primary Account Number (PAN)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F34": field.NewString(&field.Spec{
			Description: "Application Primary Account Number (PAN) Sequence Number",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"87": field.NewString(&field.Spec{
			Description: "Application Priority Indicator",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F3B": field.NewString(&field.Spec{
			Description: "Application Reference Currency",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F43": field.NewString(&field.Spec{
			Description: "Application Reference Currency Exponent",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F0A": field.NewString(&field.Spec{
			Description: "Application Selection Registered Proprietary Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"61": field.NewString(&field.Spec{
			Description: "Application Template",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F36": field.NewNumeric(&field.Spec{
			Description: "Application Transaction Counter",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F07": field.NewString(&field.Spec{
			Description: "Application Usage Control",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F08": field.NewString(&field.Spec{
			Description: "Application Version Number ICC",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F09": field.NewString(&field.Spec{
			Description: "Application Version Number Terminal",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"89": field.NewString(&field.Spec{
			Description: "Authorisation Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"8A": field.NewString(&field.Spec{
			Description: "Authorisation Response Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F54": field.NewString(&field.Spec{
			Description: "Bank Identifier Code (BIC)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F31": field.NewString(&field.Spec{
			Description: "Card BIT Group Template",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"8C": field.NewString(&field.Spec{
			Description: "Card Risk Management Data Object List 1 (CDOL1)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"8D": field.NewString(&field.Spec{
			Description: "Card Risk Management Data Object List 2 (CDOL2)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F20": field.NewString(&field.Spec{
			Description: "Cardholder Name",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F0B": field.NewString(&field.Spec{
			Description: "Cardholder Name Extended",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"8E": field.NewString(&field.Spec{
			Description: "Cardholder Verification Method (CVM) List",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F34": field.NewString(&field.Spec{
			Description: "Cardholder Verification Method (CVM) Results",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"8F": field.NewString(&field.Spec{
			Description: "Certification Authority Public Key Index ICC",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F22": field.NewString(&field.Spec{
			Description: "Certification Authority Public Key Index Terminal",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"83": field.NewString(&field.Spec{
			Description: "Command Template",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F27": field.NewString(&field.Spec{
			Description: "Cryptogram Information Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F45": field.NewString(&field.Spec{
			Description: "Data Authentication Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"84": field.NewString(&field.Spec{
			Description: "Dedicated File (DF) Name",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9D": field.NewString(&field.Spec{
			Description: "Directory Definition File (DDF) Name",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"73": field.NewString(&field.Spec{
			Description: "Directory Discretionary Template",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F49": field.NewString(&field.Spec{
			Description: "Dynamic Data Authentication Data Object List (DDOL)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"70": field.NewString(&field.Spec{
			Description: "EMV Proprietary Template",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"DF50": field.NewString(&field.Spec{
			Description: "Facial Try Counter",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"BF0C": field.NewString(&field.Spec{
			Description: "File Control Information (FCI) Issuer Discretionary Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"A5": field.NewString(&field.Spec{
			Description: "File Control Information (FCI) Proprietary Template",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"6F": field.NewString(&field.Spec{
			Description: "File Control Information (FCI) Template",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"DF51": field.NewString(&field.Spec{
			Description: "Finger Try Counter",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F4C": field.NewString(&field.Spec{
			Description: "ICC Dynamic Number",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F2D": field.NewString(&field.Spec{
			Description: "Integrated Circuit Card (ICC) PIN Encipherment Public Key Certificate",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F2E": field.NewString(&field.Spec{
			Description: "Integrated Circuit Card (ICC) PIN Encipherment Public Key Exponent",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F2F": field.NewString(&field.Spec{
			Description: "Integrated Circuit Card (ICC) PIN Encipherment Public Key Remainder",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F46": field.NewString(&field.Spec{
			Description: "Integrated Circuit Card (ICC) Public Key Certificate",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F47": field.NewString(&field.Spec{
			Description: "Integrated Circuit Card (ICC) Public Key Exponent",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F48": field.NewString(&field.Spec{
			Description: "Integrated Circuit Card (ICC) Public Key Remainder",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F1E": field.NewString(&field.Spec{
			Description: "Interface Device (IFD) Serial Number",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F53": field.NewString(&field.Spec{
			Description: "International Bank Account Number (IBAN)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F0D": field.NewString(&field.Spec{
			Description: "Issuer Action Code – Default",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F0E": field.NewString(&field.Spec{
			Description: "Issuer Action Code – Denial",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F0F": field.NewString(&field.Spec{
			Description: "Issuer Action Code – Online",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F10": field.NewString(&field.Spec{
			Description: "Issuer Application Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"91": field.NewString(&field.Spec{
			Description: "Issuer Authentication Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F11": field.NewString(&field.Spec{
			Description: "Issuer Code Table Index",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F28": field.NewString(&field.Spec{
			Description: "Issuer Country Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F55": field.NewString(&field.Spec{
			Description: "Issuer Country Code (alpha2 format)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F56": field.NewString(&field.Spec{
			Description: "Issuer Country Code (alpha3 format)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"42": field.NewString(&field.Spec{
			Description: "Issuer Identification Number (IIN)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F0C": field.NewString(&field.Spec{
			Description: "Issuer Identification Number Extended",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"90": field.NewString(&field.Spec{
			Description: "Issuer Public Key Certificate",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F32": field.NewString(&field.Spec{
			Description: "Issuer Public Key Exponent",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"92": field.NewString(&field.Spec{
			Description: "Issuer Public Key Remainder",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"86": field.NewString(&field.Spec{
			Description: "Issuer Script Command",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F18": field.NewString(&field.Spec{
			Description: "Issuer Script Identifier",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"71": field.NewString(&field.Spec{
			Description: "Issuer Script Template 1",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"72": field.NewString(&field.Spec{
			Description: "Issuer Script Template 2",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F50": field.NewString(&field.Spec{
			Description: "Issuer URL",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F2D": field.NewString(&field.Spec{
			Description: "Language Preference",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F13": field.NewString(&field.Spec{
			Description: "Last Online Application Transaction Counter (ATC) Register",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F4D": field.NewString(&field.Spec{
			Description: "Log Entry",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F4F": field.NewString(&field.Spec{
			Description: "Log Format",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F14": field.NewString(&field.Spec{
			Description: "Lower Consecutive Offline Limit",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F15": field.NewString(&field.Spec{
			Description: "Merchant Category Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F16": field.NewString(&field.Spec{
			Description: "Merchant Identifier",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F4E": field.NewString(&field.Spec{
			Description: "Merchant Name and Location",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F24": field.NewString(&field.Spec{
			Description: "Payment Account Reference (PAR)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F17": field.NewString(&field.Spec{
			Description: "Personal Identification Number (PIN) Try Counter",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F39": field.NewString(&field.Spec{
			Description: "Point-of-Service (POS) Entry Mode",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F38": field.NewString(&field.Spec{
			Description: "Processing Options Data Object List (PDOL)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"80": field.NewString(&field.Spec{
			Description: "Response Message Template Format 1",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"77": field.NewString(&field.Spec{
			Description: "Response Message Template Format 2",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F30": field.NewString(&field.Spec{
			Description: "Service Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"88": field.NewString(&field.Spec{
			Description: "Short File Identifier (SFI)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F4B": field.NewString(&field.Spec{
			Description: "Signed Dynamic Application Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"93": field.NewString(&field.Spec{
			Description: "Signed Static Application Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F4A": field.NewString(&field.Spec{
			Description: "Static Data Authentication Tag List",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F33": field.NewString(&field.Spec{
			Description: "Terminal Capabilities",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F1A": field.NewString(&field.Spec{
			Description: "Terminal Country Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F1B": field.NewString(&field.Spec{
			Description: "Terminal Floor Limit",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F1C": field.NewString(&field.Spec{
			Description: "Terminal Identification",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F1D": field.NewString(&field.Spec{
			Description: "Terminal Risk Management Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F35": field.NewString(&field.Spec{
			Description: "Terminal Type",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"95": field.NewString(&field.Spec{
			Description: "Terminal Verification Results",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F19": field.NewString(&field.Spec{
			Description: "Token Requestor ID",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F1F": field.NewString(&field.Spec{
			Description: "Track 1 Discretionary Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F20": field.NewString(&field.Spec{
			Description: "Track 2 Discretionary Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"57": field.NewString(&field.Spec{
			Description: "Track 2 Equivalent Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"98": field.NewString(&field.Spec{
			Description: "Transaction Certificate (TC) Hash Value",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"97": field.NewString(&field.Spec{
			Description: "Transaction Certificate Data Object List (TDOL)",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F2A": field.NewString(&field.Spec{
			Description: "Transaction Currency Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"5F36": field.NewString(&field.Spec{
			Description: "Transaction Currency Exponent",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9A": field.NewString(&field.Spec{
			Description: "Transaction Date",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"99": field.NewString(&field.Spec{
			Description: "Transaction Personal Identification Number (PIN) Data",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F3C": field.NewString(&field.Spec{
			Description: "Transaction Reference Currency Code",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F3D": field.NewString(&field.Spec{
			Description: "Transaction Reference Currency Exponent",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F41": field.NewString(&field.Spec{
			Description: "Transaction Sequence Counter",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9B": field.NewString(&field.Spec{
			Description: "Transaction Status Information",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F21": field.NewString(&field.Spec{
			Description: "Transaction Time",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9C": field.NewString(&field.Spec{
			Description: "Transaction Type",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F37": field.NewString(&field.Spec{
			Description: "Unpredictable Number",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
		"9F23": field.NewString(&field.Spec{
			Description: "Upper Consecutive Offline Limit",
			Enc:         encoding.ASCIIHexToBytes,
			Pref:        prefix.BerTLV,
		}),
	},
}

Functions

This section is empty.

Types

type Data

type Data struct {
	AcquirerIdentifier                                          *field.String  `index:"9F01"`
	AdditionalTerminalCapabilities                              *field.String  `index:"9F40"`
	AmountAuthorisedBinary                                      *field.String  `index:"81"`
	AmountAuthorisedNumeric                                     *field.Numeric `index:"9F02"`
	AmountOtherBinary                                           *field.String  `index:"9F04"`
	AmountOtherNumeric                                          *field.Numeric `index:"9F03"`
	AmountReferenceCurrency                                     *field.String  `index:"9F3A"`
	ApplicationCryptogram                                       *field.String  `index:"9F26"`
	ApplicationCurrencyCode                                     *field.String  `index:"9F42"`
	ApplicationCurrencyExponent                                 *field.String  `index:"9F44"`
	ApplicationDiscretionaryData                                *field.String  `index:"9F05"`
	ApplicationEffectiveDate                                    *field.String  `index:"5F25"`
	ApplicationExpirationDate                                   *field.String  `index:"5F24"`
	ApplicationFileLocatorAFL                                   *field.String  `index:"94"`
	ApplicationIdentifierAIDcard                                *field.String  `index:"4F"`
	ApplicationIdentifierAIDterminal                            *field.String  `index:"9F06"`
	ApplicationInterchangeProfile                               *field.String  `index:"82"`
	ApplicationLabel                                            *field.String  `index:"50"`
	ApplicationPreferredName                                    *field.String  `index:"9F12"`
	ApplicationPrimaryAccountNumberPAN                          *field.String  `index:"5A"`
	ApplicationPrimaryAccountNumberPANSequenceNumber            *field.String  `index:"5F34"`
	ApplicationPriorityIndicator                                *field.String  `index:"87"`
	ApplicationReferenceCurrency                                *field.String  `index:"9F3B"`
	ApplicationReferenceCurrencyExponent                        *field.String  `index:"9F43"`
	ApplicationSelectionRegisteredProprietaryData               *field.String  `index:"9F0A"`
	ApplicationTemplate                                         *field.String  `index:"61"`
	ApplicationTransactionCounter                               *field.Numeric `index:"9F36"`
	ApplicationUsageControl                                     *field.String  `index:"9F07"`
	ApplicationVersionNumber                                    *field.String  `index:"9F08"`
	ApplicationVersionNumberTerminal                            *field.String  `index:"9F09"`
	AuthorisationCode                                           *field.String  `index:"89"`
	AuthorisationResponseCode                                   *field.String  `index:"8A"`
	BankIdentifierCodeBIC                                       *field.String  `index:"5F54"`
	CardBITGroupTemplate                                        *field.String  `index:"9F31"`
	CardRiskManagementDataObjectList1CDOL1                      *field.String  `index:"8C"`
	CardRiskManagementDataObjectList2CDOL2                      *field.String  `index:"8D"`
	CardholderName                                              *field.String  `index:"5F20"`
	CardholderNameExtended                                      *field.String  `index:"9F0B"`
	CardholderVerificationMethodCVMList                         *field.String  `index:"8E"`
	CardholderVerificationMethodCVMResults                      *field.String  `index:"9F34"`
	CertificationAuthorityPublicKeyIndex                        *field.String  `index:"8F"`
	CertificationAuthorityPublicKeyIndexTerminal                *field.String  `index:"9F22"`
	CommandTemplate                                             *field.String  `index:"83"`
	CryptogramInformationData                                   *field.String  `index:"9F27"`
	DataAuthenticationCode                                      *field.String  `index:"9F45"`
	DedicatedFileDFName                                         *field.String  `index:"84"`
	DirectoryDefinitionFileDDFName                              *field.String  `index:"9D"`
	DirectoryDiscretionaryTemplate                              *field.String  `index:"73"`
	DynamicDataAuthenticationDataObjectListDDOL                 *field.String  `index:"9F49"`
	EMVProprietaryTemplate                                      *field.String  `index:"70"`
	FacialTryCounter                                            *field.String  `index:"DF50"`
	FileControlInformationFCIIssuerDiscretionaryData            *field.String  `index:"BF0C"`
	FileControlInformationFCIProprietaryTemplate                *field.String  `index:"A5"`
	FileControlInformationFCITemplate                           *field.String  `index:"6F"`
	FingerTryCounter                                            *field.String  `index:"DF51"`
	ICCDynamicNumber                                            *field.String  `index:"9F4C"`
	IntegratedCircuitCardICCPINEnciphermentPublicKeyCertificate *field.String  `index:"9F2D"`
	IntegratedCircuitCardICCPINEnciphermentPublicKeyExponent    *field.String  `index:"9F2E"`
	IntegratedCircuitCardICCPINEnciphermentPublicKeyRemainder   *field.String  `index:"9F2F"`
	IntegratedCircuitCardICCPublicKeyCertificate                *field.String  `index:"9F46"`
	IntegratedCircuitCardICCPublicKeyExponent                   *field.String  `index:"9F47"`
	IntegratedCircuitCardICCPublicKeyRemainder                  *field.String  `index:"9F48"`
	InterfaceDeviceIFDSerialNumber                              *field.String  `index:"9F1E"`
	InternationalBankAccountNumberIBAN                          *field.String  `index:"5F53"`
	IssuerActionCodeDefault                                     *field.String  `index:"9F0D"`
	IssuerActionCodeDenial                                      *field.String  `index:"9F0E"`
	IssuerActionCodeOnline                                      *field.String  `index:"9F0F"`
	IssuerApplicationData                                       *field.String  `index:"9F10"`
	IssuerAuthenticationData                                    *field.String  `index:"91"`
	IssuerCodeTableIndex                                        *field.String  `index:"9F11"`
	IssuerCountryCode                                           *field.String  `index:"5F28"`
	IssuerCountryCodealpha2format                               *field.String  `index:"5F55"`
	IssuerCountryCodealpha3format                               *field.String  `index:"5F56"`
	IssuerIdentificationNumberIIN                               *field.String  `index:"42"`
	IssuerIdentificationNumberExtended                          *field.String  `index:"9F0C"`
	IssuerPublicKeyCertificate                                  *field.String  `index:"90"`
	IssuerPublicKeyExponent                                     *field.String  `index:"9F32"`
	IssuerPublicKeyRemainder                                    *field.String  `index:"92"`
	IssuerScriptCommand                                         *field.String  `index:"86"`
	IssuerScriptIdentifier                                      *field.String  `index:"9F18"`
	IssuerScriptTemplate1                                       *field.String  `index:"71"`
	IssuerScriptTemplate2                                       *field.String  `index:"72"`
	IssuerURL                                                   *field.String  `index:"5F50"`
	LanguagePreference                                          *field.String  `index:"5F2D"`
	LastOnlineApplicationTransactionCounterATCRegister          *field.String  `index:"9F13"`
	LogEntry                                                    *field.String  `index:"9F4D"`
	LogFormat                                                   *field.String  `index:"9F4F"`
	LowerConsecutiveOfflineLimit                                *field.String  `index:"9F14"`
	MerchantCategoryCode                                        *field.String  `index:"9F15"`
	MerchantIdentifier                                          *field.String  `index:"9F16"`
	MerchantNameandLocation                                     *field.String  `index:"9F4E"`
	PaymentAccountReferencePAR                                  *field.String  `index:"9F24"`
	PersonalIdentificationNumberPINTryCounter                   *field.String  `index:"9F17"`
	PointofServicePOSEntryMode                                  *field.String  `index:"9F39"`
	ProcessingOptionsDataObjectListPDOL                         *field.String  `index:"9F38"`
	ResponseMessageTemplateFormat1                              *field.String  `index:"80"`
	ResponseMessageTemplateFormat2                              *field.String  `index:"77"`
	ServiceCode                                                 *field.String  `index:"5F30"`
	ShortFileIdentifierSFI                                      *field.String  `index:"88"`
	SignedDynamicApplicationData                                *field.String  `index:"9F4B"`
	SignedStaticApplicationData                                 *field.String  `index:"93"`
	StaticDataAuthenticationTagList                             *field.String  `index:"9F4A"`
	TerminalCapabilities                                        *field.String  `index:"9F33"`
	TerminalCountryCode                                         *field.String  `index:"9F1A"`
	TerminalFloorLimit                                          *field.String  `index:"9F1B"`
	TerminalIdentification                                      *field.String  `index:"9F1C"`
	TerminalRiskManagementData                                  *field.String  `index:"9F1D"`
	TerminalType                                                *field.String  `index:"9F35"`
	TerminalVerificationResults                                 *field.String  `index:"95"`
	TokenRequestorID                                            *field.String  `index:"9F19"`
	Track1DiscretionaryData                                     *field.String  `index:"9F1F"`
	Track2DiscretionaryData                                     *field.String  `index:"9F20"`
	Track2EquivalentData                                        *field.String  `index:"57"`
	TransactionCertificateTCHashValue                           *field.String  `index:"98"`
	TransactionCertificateDataObjectListTDOL                    *field.String  `index:"97"`
	TransactionCurrencyCode                                     *field.String  `index:"5F2A"`
	TransactionCurrencyExponent                                 *field.String  `index:"5F36"`
	TransactionDate                                             *field.String  `index:"9A"`
	TransactionPersonalIdentificationNumberPINData              *field.String  `index:"99"`
	TransactionReferenceCurrencyCode                            *field.String  `index:"9F3C"`
	TransactionReferenceCurrencyExponent                        *field.String  `index:"9F3D"`
	TransactionSequenceCounter                                  *field.String  `index:"9F41"`
	TransactionStatusInformation                                *field.String  `index:"9B"`
	TransactionTime                                             *field.String  `index:"9F21"`
	TransactionType                                             *field.String  `index:"9C"`
	UnpredictableNumber                                         *field.String  `index:"9F37"`
	UpperConsecutiveOfflineLimit                                *field.String  `index:"9F23"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL