emv

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2026 License: Apache-2.0 Imports: 5 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 (
	MessageSpec = &iso8583.MessageSpec{
		Fields: map[int]field.Field{
			0: field.NewString(&field.Spec{
				Length:      4,
				Description: "Message Type Indicator",
				Enc:         encoding.ASCII,
				Pref:        prefix.ASCII.Fixed,
			}),
			1: field.NewBitmap(&field.Spec{
				Description: "Bitmap",
				Enc:         encoding.Binary,
				Pref:        prefix.Binary.Fixed,
			}),
			55: field.NewComposite(Spec),
		},
	}

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

type NativeData added in v0.22.2

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

genearte struct with native go types

Jump to

Keyboard shortcuts

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