Have ideas to improve npm?Join in the discussion! »

    emv-qrcps

    0.0.7 • Public • Published

    This library was made to help people that are using NodeJS to generate and parse EMV QRcode according with the specifications:

    Installing

    npm install emv-qrcps
    

    Modules

    There are 2 modules in this library.

    • Merchant - To work with QRCode according with the Merchant Specification.
    • Consumer - To work with QRCode according with the Consumer Specification.

    Merchant Module

    You can use this Module by importing:

    const { Merchant } = require('emv-qrcode');
    

    Methods

    buildTLV

    const TLV = Merchant.buildTLV(tag, length, value);
    
    Parameter Description Type
    tag Payload Format Indicator string
    length Point of Initiation Method number
    value Merchant Account Information string
    Return Type Description
    TLV It means an object that stores a Tag + Lenght + Value.

    buildEMVQR

    const EMVQR = Merchant.buildEMVQR();
    
    // ... OR
    
    const EMVQR = Merchant.buildEMVQR(
        payloadFormatIndicator,
        pointOfInitiationMethod,
        merchantAccountInformation,
        merchantCategoryCode,
        transactionCurrency,
        transactionAmount,
        tipOrConvenienceIndicator,
        valueOfConvenienceFeeFixed,
        valueOfConvenienceFeePercentage,
        countryCode,
        merchantName,
        merchantCity,
        postalCode,
        additionalDataFieldTemplate,
        crc,
        merchantInformationLanguageTemplate,
        rfuForEMVCo,
        unreservedTemplates,
    );
    
    Parameter Description Type
    payloadFormatIndicator Payload Format Indicator TLV
    pointOfInitiationMethod Point of Initiation Method TLV
    merchantAccountInformation Merchant Account Information map [ id(string) : MerchantAccountInformation ]
    merchantCategoryCode Merchant Category Code TLV
    transactionCurrency Transaction Currency TLV
    transactionAmount Transaction Amount TLV
    tipOrConvenienceIndicator Tip or Convenience Indicator TLV
    valueOfConvenienceFeeFixed Value of Convenience Fee Fixed TLV
    valueOfConvenienceFeePercentage Value of Convenience Fee Percentage TLV
    countryCode Country Code TLV
    merchantName Merchant Name TLV
    merchantCity Merchant City TLV
    postalCode Postal Code TLV
    additionalDataFieldTemplate Additional Data Field Template AdditionalDataFieldTemplate
    crc CRC TLV
    merchantInformationLanguageTemplate Merchant Information - Language Template MerchantInformationLanguageTemplate
    rfuForEMVCo RFU for EMVCo array [ TLV ]
    unreservedTemplates Unreserved Templates map [ id(string) : UnreservedTemplate ]
    Return Type Description
    EMVQR It means an object that represents an EMV QRCode.

    buildAdditionalDataFieldTemplate

    const additionalDataFieldTemplate = Merchant.buildAdditionalDataFieldTemplate();
    
    // ... OR
    
    const additionalDataFieldTemplate = Merchant.buildAdditionalDataFieldTemplate(
        billNumber,
        mobileNumber,
        storeLabel,
        loyaltyNumber,
        referenceLabel,
        customerLabel,
        terminalLabel,
        purposeTransaction,
        additionalConsumerDataRequest,
        rfuForEMVCo,
        paymentSystemSpecific
    );
    
    Parameter Description Type
    billNumber Bill Number TLV
    mobileNumber Country Code TLV
    storeLabel Store Label TLV
    loyaltyNumber Loyalty Number TLV
    referenceLabel Reference Label TLV
    customerLabel Customer Label TLV
    terminalLabel Terminal Label TLV
    purposeTransaction Purpose of Transaction TLV
    additionalConsumerDataRequest Additional Consumer Data Request TLV
    rfuForEMVCo RFU for EMVCo array [ TLV ]
    paymentSystemSpecific Payment System specific templates map [ id(string) : PaymentSystemSpecific ]
    Return Type Description
    AdditionalDataFieldTemplate It means an object that represents an additional data field template.

    buildMerchantInformationLanguageTemplate

    const merchantInformationLanguageTemplate = Merchant.buildMerchantInformationLanguageTemplate();
    
    // ... OR
    
    const merchantInformationLanguageTemplate = Merchant.buildMerchantInformationLanguageTemplate(
        languagePreference,
        merchantName,
        merchantCity,
        rfuForEMVCo,
    );
    
    Parameter Description Type
    languagePreference Language Preference TLV
    merchantName Name of the merchant TLV
    merchantCity Name of the marchant city TLV
    rfuForEMVCo RFU for EMVCo array [ TLV ]
    Return Type Description
    MerchantInformationLanguageTemplate It means an object that represents a merchant information language template.

    buildMerchantAccountInformation

    const merchantAccountInformation = Merchant.buildMerchantAccountInformation();
    
    // ... OR
    
    const merchantAccountInformation = Merchant.buildMerchantAccountInformation(
        globallyUniqueIdentifier,
        paymentNetworkSpecific,
    );
    
    Parameter Description Type
    globallyUniqueIdentifier Globally unique identifier TLV
    paymentNetworkSpecific Array of payment network specific array [ TLV ]
    Return Type Description
    MerchantAccountInformation It means an object that represents a merchant account information.

    buildUnreservedTemplate

    const unreservedTemplate = Merchant.buildUnreservedTemplate();
    
    // ... OR
    
    const unreservedTemplate = Merchant.buildUnreservedTemplate(
        globallyUniqueIdentifier,
        paymentNetworkSpecific,
    );
    
    Parameter Description Type
    globallyUniqueIdentifier Globally unique identifier TLV
    contextSpecificData Array of context of specific data array [ TLV ]
    Return Type Description
    UnreservedTemplate It means an object that represents an unreserved template.

    Object Types

    TLV

    Represents a TAG + Length + Value.

    const { Merchant } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const tag = "01";
    const value = "Example";
    const length = value.length;
    
    const TLV = Merchant.buildTLV(tag, length, value);
    
    Methods
    toString
    const tlvStringFormat = TLV.toString();
    
    Return Type Description
    string TLV in string format
    dataWithType
    const tlvBinaryFormat = TLV.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const tlvRawFormat = TLV.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string TLV in binary OR raw data format

    MerchantAccountInformation

    Represents a merchant account information.

    const { Merchant } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const merchantAccountInformation = Merchant.buildMerchantAccountInformation();
    
    Methods
    toString
    const merchantAccountInformationStringFormat = merchantAccountInformation.toString();
    
    Return Type Description
    string MerchantAccountInformation in TLV string format
    dataWithType
    const merchantAccountInformationBinaryFormat = merchantAccountInformation.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const merchantAccountInformationRawFormat = merchantAccountInformation.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string MerchantAccountInformation in TLV binary OR TLV raw data format
    setGloballyUniqueIdentifier
    const value = "15600000000";
    
    merchantAccountInformation.setGloballyUniqueIdentifier(value);
    
    Parameters Description Type
    value Some value string
    addPaymentNetworkSpecific
    const id = "03";
    const value = "12345678";
    
    merchantAccountInformation.addPaymentNetworkSpecific(id, value);
    
    Parameters Description Type
    id Tag ID string
    value Some value string

    MerchantInformationLanguageTemplate

    Represents a merchant information language template.

    const { Merchant } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const merchantInformationLanguageTemplate = Merchant.buildMerchantInformationLanguageTemplate();
    
    Methods
    toString
    const merchantInformationLanguageTemplateStringFormat = merchantInformationLanguageTemplate.toString();
    
    Return Type Description
    string MerchantInformationLanguageTemplate in TLV string format
    dataWithType
    const merchantInformationLanguageTemplateBinaryFormat = merchantInformationLanguageTemplate.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const merchantInformationLanguageTemplateRawFormat = merchantInformationLanguageTemplate.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string MerchantInformationLanguageTemplate in TLV binary OR TLV raw data format
    validate
    const isValid = merchantInformationLanguageTemplate.validate();
    
    Return Type Description
    boolean True if required properties is valid otherwise throw an Error
    setLanguagePreference
    const value = "PT";
    
    merchantInformationLanguageTemplate.setLanguagePreference(value);
    
    Parameters Description Type
    value Some value string
    setMerchantName
    const value = "Merchant Organization";
    
    merchantInformationLanguageTemplate.setMerchantName(value);
    
    Parameters Description Type
    value Some value string
    setMerchantCity
    const value = "Brasilia";
    
    merchantInformationLanguageTemplate.setMerchantCity(value);
    
    Parameters Description Type
    value Some value string
    addRFUforEMVCo
    const id = "03";
    const value = "12345678";
    
    merchantInformationLanguageTemplate.addRFUforEMVCo(id, value);
    
    Parameters Description Type
    id Tag ID string
    value Some value string

    UnreservedTemplate

    Represents a merchant account information.

    const { Merchant } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const unreservedTemplate = Merchant.buildUnreservedTemplate();
    
    Methods
    toString
    const unreservedTemplateStringFormat = unreservedTemplate.toString();
    
    Return Type Description
    string UnreservedTemplate in TLV string format
    dataWithType
    const unreservedTemplateBinaryFormat = unreservedTemplate.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const unreservedTemplateRawFormat = unreservedTemplate.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string UnreservedTemplate in TLV binary OR TLV raw data format
    setGloballyUniqueIdentifier
    const value = "15600000000";
    
    unreservedTemplate.setGloballyUniqueIdentifier(value);
    
    Parameters Description Type
    value Some value string
    addContextSpecificData
    const id = "03";
    const value = "12345678";
    
    unreservedTemplate.addContextSpecificData(id, value);
    
    Parameters Description Type
    id Tag ID string
    value Some value string

    PaymentSystemSpecific

    Represents a payment system specific.

    const { Merchant } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const paymentSystemSpecific = Merchant.buildPaymentSystemSpecific();
    
    Methods
    toString
    const paymentSystemSpecificStringFormat = paymentSystemSpecific.toString();
    
    Return Type Description
    string PaymentSystemSpecific in TLV string format
    dataWithType
    const paymentSystemSpecificBinaryFormat = paymentSystemSpecific.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const paymentSystemSpecificRawFormat = paymentSystemSpecific.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string PaymentSystemSpecific in TLV binary OR TLV raw data format
    setGloballyUniqueIdentifier
    const value = "15600000000";
    
    paymentSystemSpecific.setGloballyUniqueIdentifier(value);
    
    Parameters Description Type
    value Some value string
    addPaymentSystemSpecific
    const id = "03";
    const value = "12345678";
    
    paymentSystemSpecific.addPaymentSystemSpecific(id, value);
    
    Parameters Description Type
    id Tag ID string
    value Some value string

    AdditionalDataFieldTemplate

    Represents an additional data field template.

    const { Merchant } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const additionalDataFieldTemplate = Merchant.buildAdditionalDataFieldTemplate();
    
    Methods
    toString
    const additionalDataFieldTemplateStringFormat = additionalDataFieldTemplate.toString();
    
    Return Type Description
    string AdditionalDataFieldTemplate in TLV string format
    dataWithType
    const additionalDataFieldTemplateBinaryFormat = additionalDataFieldTemplate.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const additionalDataFieldTemplateRawFormat = additionalDataFieldTemplate.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string AdditionalDataFieldTemplate in TLV binary OR TLV raw data format
    setBillNumber
    const value = "34250";
    
    additionalDataFieldTemplate.setBillNumber(value);
    
    Parameters Description Type
    value Some value string
    setMobileNumber
    const value = "+5561991112222";
    
    additionalDataFieldTemplate.setMobileNumber(value);
    
    Parameters Description Type
    value Some value string
    setStoreLabel
    const value = "1234";
    
    additionalDataFieldTemplate.setStoreLabel(value);
    
    Parameters Description Type
    value Some value string
    setLoyaltyNumber
    const value = "12345";
    
    additionalDataFieldTemplate.setLoyaltyNumber(value);
    
    Parameters Description Type
    value Some value string
    setReferenceLabel
    const value = "example";
    
    additionalDataFieldTemplate.setReferenceLabel(value);
    
    Parameters Description Type
    value Some value string
    setCustomerLabel
    const value = "***";
    
    additionalDataFieldTemplate.setCustomerLabel(value);
    
    Parameters Description Type
    value Some value string
    setTerminalLabel
    const value = "A6008667";
    
    additionalDataFieldTemplate.setTerminalLabel(value);
    
    Parameters Description Type
    value Some value string
    setPurposeTransaction
    const value = "Some purpose";
    
    additionalDataFieldTemplate.setPurposeTransaction(value);
    
    Parameters Description Type
    value Some value string
    setAdditionalConsumerDataRequest
    const value = "ME";
    
    additionalDataFieldTemplate.setAdditionalConsumerDataRequest(value);
    
    Parameters Description Type
    value Some value string
    addRFUforEMVCo
    const id = "03";
    const value = "12345678";
    
    additionalDataFieldTemplate.addRFUforEMVCo(id, value);
    
    Parameters Description Type
    id Tag ID string
    value Some value string
    addPaymentSystemSpecific
    const id = "03";
    const value = Merchant.buildPaymentSystemSpecific();
    value.setGloballyUniqueIdentifier("15600000000");
    value.addPaymentSystemSpecific("03", "12345678");
    
    additionalDataFieldTemplate.addPaymentSystemSpecific(id, value);
    
    Parameters Description Type
    id Tag ID string
    value Some value string

    EMVQR

    Represents an EMV QRCode.

    const { Merchant } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const emvqr = Merchant.buildEMVQR();
    
    Methods
    generatePayload
    const emvqrStringFormat = emvqr.generatePayload();
    
    Return Type Description
    string EMV QRCode payload in string format.
    dataWithType
    const emvqrBinaryFormat = emvqr.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const emvqrRawFormat = emvqr.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string EMV QRCode in binary OR raw data format
    toBinary
    const emvqrBinaryFormat = emvqr.toBinary(); // Binary Data (shown as hex bytes)
    
    Return Type Description
    string EMV QRCode in binary format
    rawData
    const emvqrBinaryFormat = emvqr.rawData(); // Raw Data
    
    Return Type Description
    string EMV QRCode in raw data format
    validate
    const isValid = emvqr.validate();
    
    Return Type Description
    boolean True if required properties is valid otherwise throw an Error
    setPayloadFormatIndicator
    const value = "01";
    
    emvqr.setPayloadFormatIndicator(value);
    
    Parameters Description Type
    value Some value string
    setPointOfInitiationMethod
    const value = "00";
    
    emvqr.setPointOfInitiationMethod(value);
    
    Parameters Description Type
    value Some value string
    setMerchantCategoryCode
    const value = "Technology";
    
    emvqr.setMerchantCategoryCode(value);
    
    Parameters Description Type
    value Some value string
    setTransactionCurrency
    const value = "BRL";
    
    emvqr.setTransactionCurrency(value);
    
    Parameters Description Type
    value Some value string
    setTransactionAmount
    const value = "20.5";
    
    emvqr.setTransactionAmount(value);
    
    Parameters Description Type
    value Some value string
    setTipOrConvenienceIndicator
    const value = "2";
    
    emvqr.setTipOrConvenienceIndicator(value);
    
    Parameters Description Type
    value Some value string
    setValueOfConvenienceFeeFixed
    const value = "2.00";
    
    emvqr.setValueOfConvenienceFeeFixed(value);
    
    Parameters Description Type
    value Some value string
    setValueOfConvenienceFeePercentage
    const value = "0.90";
    
    emvqr.setValueOfConvenienceFeePercentage(value);
    
    Parameters Description Type
    value Some value string
    setCountryCode
    const value = "55";
    
    emvqr.setCountryCode(value);
    
    Parameters Description Type
    value Some value string
    setMerchantName
    const value = "Merchant Organization";
    
    emvqr.setMerchantName(value);
    
    Parameters Description Type
    value Some value string
    setMerchantCity
    const value = "Brasilia";
    
    emvqr.setMerchantCity(value);
    
    Parameters Description Type
    value Some value string
    setPostalCode
    const value = "71715-000";
    
    emvqr.setPostalCode(value);
    
    Parameters Description Type
    value Some value string
    setCRC
    const value = "AF35";
    
    emvqr.setCRC(value);
    
    Parameters Description Type
    value Some value string
    setAdditionalDataFieldTemplate
    const additionalDataFieldTemplate = Merchant.buildAdditionalDataFieldTemplate();
    additionalDataFieldTemplate.setStoreLabel("1234");
    additionalDataFieldTemplate.setCustomerLabel("***");
    additionalDataFieldTemplate.setTerminalLabel("A6008667");
    additionalDataFieldTemplate.setAdditionalConsumerDataRequest("ME");
    
    emvqr.setAdditionalDataFieldTemplate(additionalDataFieldTemplate);
    
    Parameters Description Type
    additionalDataFieldTemplate Some additional data field template AdditionalDataFieldTemplate
    setMerchantInformationLanguageTemplate
    let merchantInformationLanguageTemplate = Merchant.buildMerchantInformationLanguageTemplate();
    merchantInformationLanguageTemplate.setLanguagePreference("PT");
    merchantInformationLanguageTemplate.setMerchantName("Merchant Organization");
    merchantInformationLanguageTemplate.setMerchantCity("Brasilia");
    emvqr.setMerchantInformationLanguageTemplate(merchantInformationLanguageTemplate);
    
    Parameters Description Type
    merchantInformationLanguageTemplate Some merchant information language template MerchantInformationLanguageTemplate
    addMerchantAccountInformation
    const id = "27";
    
    const merchantAccountInformation = Merchant.buildMerchantAccountInformation();
    merchantAccountInformation.setGloballyUniqueIdentifier("com.p2pqrpay");
    merchantAccountInformation.addPaymentNetworkSpecific("01", "PAPHPHM1XXX");
    merchantAccountInformation.addPaymentNetworkSpecific("02", "99964403");
    merchantAccountInformation.addPaymentNetworkSpecific("04", "09985903943");
    merchantAccountInformation.addPaymentNetworkSpecific("05", "+639985903943");
    
    emvqr.addMerchantAccountInformation(id, merchantAccountInformation);
    
    Parameters Description Type
    id Tag ID string
    value Some merchant account information string
    addUnreservedTemplates
    const id = "80";
    
    const unreservedTemplate = Merchant.buildUnreservedTemplate();
    unreservedTemplate.setGloballyUniqueIdentifier("A011223344998877");
    unreservedTemplate.addContextSpecificData("07", "12345678");
    
    emvqr.addUnreservedTemplates(id, unreservedTemplate);
    
    Parameters Description Type
    id Tag ID string
    value Some unreserved template string
    addRFUforEMVCo
    const id = "03";
    const value = "12345678";
    
    emvqr.addRFUforEMVCo(id, value);
    
    Parameters Description Type
    id Tag ID string
    value Some value string

    Consumer Module

    You can use this Module by importing:

    const { Consumer } = require('emv-qrcode')
    

    Methods

    buildBERTLV

    const berTLV = Consumer.buildBERTLV();
    
    // ... OR
    
    const berTLV = Consumer.buildBERTLV(
        dataApplicationDefinitionFileName,
        dataApplicationLabel,
        dataTrack2EquivalentData,
        dataApplicationPAN,
        dataCardholderName,
        dataLanguagePreference,
        dataIssuerURL,
        dataApplicationVersionNumber,
        dataIssuerApplicationData,
        dataTokenRequestorID,
        dataPaymentAccountReference,
        dataLast4DigitsOfPAN,
        dataApplicationCryptogram,
        dataApplicationTransactionCounter,
        dataUnpredictableNumber
    );
    
    
    Parameter Description Type
    dataApplicationDefinitionFileName Application Definition Name string(in-hex-decimal-format)
    dataApplicationLabel Application Label string
    dataTrack2EquivalentData Track to equivalent data string(in-hex-decimal-format)
    dataApplicationPAN Application PAN string(in-hex-decimal-format)
    dataCardholderName Cardholder Name string
    dataLanguagePreference Language Preference string
    dataIssuerURL Issuer URL string
    dataApplicationVersionNumber Application Version Number string(in-hex-decimal-format)
    dataIssuerApplicationData Issuer Application Data string(in-hex-decimal-format)
    dataTokenRequestorID Token Requestor ID string(in-hex-decimal-format)
    dataPaymentAccountReference Payment Account Reference string(in-hex-decimal-format)
    dataLast4DigitsOfPAN Last 4 digits of PAN string(in-hex-decimal-format)
    dataApplicationCryptogram Application Cryptogram string(in-hex-decimal-format)
    dataApplicationTransactionCounter Application Transaction Counter string(in-hex-decimal-format)
    dataUnpredictableNumber Unpredictable Number string(in-hex-decimal-format)
    Return Type Description
    BERTLV It means the TLV Object of the consumer module.

    buildApplicationSpecificTransparentTemplate

    const applicationSpecificTransparentTemplate = Consumer.buildApplicationSpecificTransparentTemplate();
    
    // ... OR
    
    const applicationSpecificTransparentTemplate = Consumer.buildApplicationSpecificTransparentTemplate(
        berTLV = BERTLV()
    );
    
    
    
    Parameter Description Type
    berTLV BERTLV Object BERTLV
    Return Type Description
    ApplicationSpecificTransparentTemplate It means an object that stores an application specific transparent template.

    buildApplicationTemplate

    const applicationTemplate = Consumer.buildApplicationTemplate();
    
    // ... OR
    
    const applicationTemplate = Consumer.buildApplicationTemplate(
        berTLV = BERTLV(),
        applicationSpecificTransparentTemplates = []
    );
    
    
    
    Parameter Description Type
    berTLV BERTLV Object BERTLV
    applicationSpecificTransparentTemplates Application specific transparent templates array (ApplicationSpecificTransparentTemplate)
    Return Type Description
    ApplicationTemplate It means an object that stores an application template.

    buildCommonDataTransparentTemplate

    const commonDataTransparentTemplate = Consumer.buildCommonDataTransparentTemplate();
    
    // ... OR
    
    const commonDataTransparentTemplate = Consumer.buildCommonDataTransparentTemplate(
        berTLV = BERTLV()
    );
    
    
    Parameter Description Type
    berTLV BERTLV Object BERTLV
    Return Type Description
    CommonDataTransparentTemplate It means an object that stores a common data transparent template.

    buildCommonDataTemplate

    const commonDataTemplate = Consumer.buildCommonDataTemplate();
    
    // ... OR
    
    const commonDataTemplate = Consumer.buildCommonDataTemplate(
        berTLV = BERTLV(),
        commonDataTransparentTemplates = [] 
    );
    
    
    Parameter Description Type
    berTLV BERTLV Object BERTLV
    commonDataTransparentTemplates Common data transparent templates array (CommonDataTransparentTemplate)
    Return Type Description
    CommonDataTemplate It means an object that stores a common data template.

    buildEMVQR

    const EMVQR = Consumer.buildEMVQR();
    
    // ... OR
    
    const EMVQR = Consumer.buildEMVQR(
        dataPayloadFormatIndicator,
        applicationTemplates,
        commonDataTemplates
    );
    
    Parameter Description Type
    dataPayloadFormatIndicator Payload Format Indicator string
    applicationTemplates Application Templates array [ ApplicationTemplate ]
    commonDataTemplates Common Data templates array [ CommonDataTemplate ]
    Return Type Description
    EMVQR It means an object that represents an EMV QRCode.

    Object Types

    BERTLV

    Represents a Basic Encoding Rules TAG + Length + Value.

    const { Consumer } = require('emv-qrcode');
    const { Constants } = Merchant;
    
    const berTLV = Merchant.buildBERTLV();
    
    Methods
    setDataApplicationDefinitionFileName
    berTLV.setDataApplicationDefinitionFileName("A0000000555555");
    
    Parameters Description Type
    dataApplicationDefinitionFileName Application Definition File (ADF) Name string(in-hex-decimal-format)
    setDataApplicationLabel
    berTLV.setDataApplicationLabel("Product1");
    
    Parameters Description Type
    setDataApplicationLabel Application Label string
    setDataTrack2EquivalentData
    berTLV.setDataTrack2EquivalentData("AABBCCDD");
    
    Parameters Description Type
    dataTrack2EquivalentData Track 2 Equivalent Data string(in-hex-decimal-format)
    setDataApplicationPAN
    berTLV.setDataApplicationPAN("1234567890123458");
    
    Parameters Description Type
    dataApplicationPAN Application PAN string(in-hex-decimal-format)
    setDataCardholderName
    berTLV.setDataCardholderName("CARDHOLDER/EMV");
    
    Parameters Description Type
    dataCardholderName Cardholder Name string
    setDataLanguagePreference
    berTLV.setDataLanguagePreference("ruesdeen");
    
    Parameters Description Type
    dataLanguagePreference Language Preference string
    setDataIssuerURL
    berTLV.setDataIssuerURL("http://someuri.com");
    
    Parameters Description Type
    dataIssuerURL Issuer URL string
    setDataApplicationVersionNumber
    berTLV.setDataApplicationVersionNumber("04");
    
    Parameters Description Type
    dataApplicationVersionNumber Application Version Number string(in-hex-decimal-format)
    setDataIssuerApplicationData
    berTLV.setDataIssuerApplicationData("06010A03000000");
    
    Parameters Description Type
    dataIssuerApplicationData Issuer application data string(in-hex-decimal-format)
    setDataTokenRequestorID
    berTLV.setDataTokenRequestorID("0601AABBCC");
    
    Parameters Description Type
    dataTokenRequestorID Token Requestor ID string(in-hex-decimal-format)
    setDataPaymentAccountReference
    berTLV.setDataPaymentAccountReference("0708AABBCCDD");
    
    Parameters Description Type
    dataPaymentAccountReference Payment Account Reference string(in-hex-decimal-format)
    setDataLast4DigitsOfPAN
    berTLV.setDataLast4DigitsOfPAN("07080201");
    
    Parameters Description Type
    dataLast4DigitsOfPAN Last 4 Digits of PAN string(in-hex-decimal-format)
    setDataApplicationCryptogram
    berTLV.setDataApplicationCryptogram("584FD385FA234BCC");
    
    Parameters Description Type
    dataApplicationCryptogram Application Cryptogram string(in-hex-decimal-format)
    setDataApplicationTransactionCounter
    berTLV.setDataApplicationTransactionCounter("0001");
    
    Parameters Description Type
    dataApplicationTransactionCounter Application Transaction Counter string(in-hex-decimal-format)
    setDataUnpredictableNumber
    berTLV.setDataUnpredictableNumber("6D58EF13");
    
    Parameters Description Type
    dataUnpredictableNumber Unpredictable Number string(in-hex-decimal-format)
    format
    berTLV.format();
    
    Return Type Description
    string BERTLV in string format
    dataWithType
    const berTlvBinaryFormat = berTLV.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const berTlvRawFormat = berTLV.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string BERTLV in binary OR raw data format

    ApplicationSpecificTransparentTemplate

    Represents an application specific transparent template.

    const { Consumer } = require('emv-qrcode');
    const { Constants } = Consumer;
    
    const applicationSpecificTransparentTemplate = Consumer.buildApplicationSpecificTransparentTemplate();
    
    Methods
    setBERTLV
    const berTLV = Consumer.buildBERTLV();
    
    // Setters assignments in berTLV
    
    applicationSpecificTransparentTemplate.setBERTLV(berTLV);
    
    Parameters Description Type
    berTLV BERTLV Object BERTLV
    format
    applicationSpecificTransparentTemplate.format();
    
    Return Type Description
    string ApplicationSpecificTransparentTemplate in string format
    dataWithType
    const binaryFormat = applicationSpecificTransparentTemplate.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const rawFormat = applicationSpecificTransparentTemplate.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string Application specific transparent template in binary OR raw data format

    CommonDataTransparentTemplate

    Represents a common data transparent template.

    const { Consumer } = require('emv-qrcode');
    const { Constants } = Consumer;
    
    const commonDataTransparentTemplate = Consumer.buildCommonDataTransparentTemplate();
    
    Methods
    setBERTLV
    const berTLV = Consumer.buildBERTLV();
    
    // Setters assignments in berTLV
    
    commonDataTransparentTemplate.setBERTLV(berTLV);
    
    Parameters Description Type
    berTLV BERTLV Object BERTLV
    format
    commonDataTransparentTemplate.format();
    
    Return Type Description
    string CommonDataTransparentTemplate in string format
    dataWithType
    const binaryFormat = commonDataTransparentTemplate.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const rawFormat = commonDataTransparentTemplate.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string Common data transparent template in binary OR raw data format

    ApplicationTemplate

    Represents an application template.

    const { Consumer } = require('emv-qrcode');
    const { Constants } = Consumer;
    
    const applicationTemplate = Consumer.buildApplicationTemplate();
    
    Methods
    setBERTLV
    const berTLV = Consumer.buildBERTLV();
    
    // Setters assignments in berTLV
    
    applicationTemplate.setBERTLV(berTLV);
    
    Parameters Description Type
    berTLV BERTLV Object BERTLV
    addApplicationSpecificTransparentTemplate
    const applicationSpecificTransparentTemplate = Consumer.buildApplicationSpecificTransparentTemplate();
    
    const berTLV1 = Consumer.buildBERTLV();
    berTLV1.setDataApplicationDefinitionFileName("A0000000555555");
    berTLV1.setDataApplicationLabel("Product1");
    applicationSpecificTransparentTemplate.setBERTLV(berTLV1);
    
    applicationTemplate.addApplicationSpecificTransparentTemplate(applicationSpecificTransparentTemplate);
    
    Parameters Description Type
    applicationSpecificTransparentTemplate An application specific transparent template ApplicationSpecificTransparentTemplate
    format
    applicationTemplate.format();
    
    Return Type Description
    string ApplicationTemplate in string format
    dataWithType
    const binaryFormat = applicationTemplate.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const rawFormat = applicationTemplate.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string Common data transparent template in binary OR raw data format

    CommonDataTemplate

    Represents a common data template.

    const { Consumer } = require('emv-qrcode');
    const { Constants } = Consumer;
    
    const commonDataTemplate = Consumer.buildCommonDataTemplate();
    
    Methods
    setBERTLV
    const berTLV = Consumer.buildBERTLV();
    
    // Setters assignments in berTLV
    
    commonDataTemplate.setBERTLV(berTLV);
    
    Parameters Description Type
    berTLV BERTLV Object BERTLV
    addCommonDataTransparentTemplate
    const commonDataTransparentTemplate = Consumer.buildCommonDataTransparentTemplate();
    
    const berTLV = Consumer.buildBERTLV();
    berTLV.setDataIssuerApplicationData("06010A03000000");
    berTLV.setDataApplicationCryptogram("584FD385FA234BCC");
    berTLV.setDataApplicationTransactionCounter("0001");
    berTLV.setDataUnpredictableNumber("6D58EF13");
    commonDataTransparentTemplate.setBERTLV(berTLV);
    
    commonDataTemplate.addCommonDataTransparentTemplate(commonDataTransparentTemplate);
    
    Parameters Description Type
    commonDataTransparentTemplate A common data transparent template CommonDataTransparentTemplate
    format
    commonDataTemplate.format();
    
    Return Type Description
    string CommonDataTemplate in string format
    dataWithType
    const binaryFormat = commonDataTemplate.dataWithType(Constants.DATA_TYPE.BINARY, ' '); // Binary Data (shown as hex bytes)
    
    // OR
    
    const rawFormat = commonDataTemplate.dataWithType(Constants.DATA_TYPE.RAW, ' '); // Raw Data
    
    Parameters Description Type
    dataType Data type value Constants.DATA_TYPE.BINARY | Constants.DATA_TYPE.RAW
    indent Indent character (Ex.: ' ') string
    Return Type Description
    string Common data transparent template in binary OR raw data format

    EMVQR

    Represents an EMV QRCode.

    const { Consumer } = require('emv-qrcode');
    const { Constants } = Consumer;
    
    const emvqr = Consumer.buildEMVQR();
    
    Methods
    setDataPayloadFormatIndicator
    emvqr.setDataPayloadFormatIndicator("CPV01");
    
    Parameters Description Type
    dataPayloadFormatIndicator Payload Format Indicator string
    addApplicationTemplate
    const applicationTemplate1 = Consumer.buildApplicationTemplate();
    const berTLV1 = Consumer.buildBERTLV();
    berTLV1.setDataApplicationDefinitionFileName("A0000000555555");
    berTLV1.setDataApplicationLabel("Product1");
    applicationTemplate1.setBERTLV(berTLV1);
    
    emvqr.addApplicationTemplate(applicationTemplate1);
    
    const applicationTemplate2 = Consumer.buildApplicationTemplate();
    const berTLV2 = Consumer.buildBERTLV();
    berTLV2.setDataApplicationDefinitionFileName("A0000000666666");
    berTLV2.setDataApplicationLabel("Product2");
    applicationTemplate2.setBERTLV(berTLV2);
    
    emvqr.addApplicationTemplate(applicationTemplate2);
    
    Parameters Description Type
    applicationTemplate An application template ApplicationTemplate
    addCommonDataTemplate
    const commonDataTemplate = Consumer.buildCommonDataTemplate();
    
    const berTLV1 = Consumer.buildBERTLV();
    berTLV1.setDataApplicationPAN("1234567890123458");
    berTLV1.setDataCardholderName("CARDHOLDER/EMV");
    berTLV1.setDataLanguagePreference("ruesdeen");
    commonDataTemplate.setBERTLV(berTLV1);
    
    const commonDataTransparentTemplate = Consumer.buildCommonDataTransparentTemplate();
    
    const berTLV2 = Consumer.buildBERTLV();
    berTLV2.setDataIssuerApplicationData("06010A03000000");
    berTLV2.setDataApplicationCryptogram("584FD385FA234BCC");
    berTLV2.setDataApplicationTransactionCounter("0001");
    berTLV2.setDataUnpredictableNumber("6D58EF13");
    commonDataTransparentTemplate.setBERTLV(berTLV2);
    
    commonDataTemplate.addCommonDataTransparentTemplate(commonDataTransparentTemplate);
    
    emvqr.addCommonDataTemplate(commonDataTemplate);
    
    Parameters Description Type
    commonDataTemplate A common data template CommonDataTemplate
    generatePayload
    commonDataTemplate.generatePayload();
    
    Return Type Description
    string EMVQR in base64 string format
    toBinary
    const emvqrBinaryFormat = emvqr.toBinary(); // Binary Data (shown as hex bytes)
    
    Return Type Description
    string EMV QRCode in binary format
    rawData
    const emvqrBinaryFormat = emvqr.rawData(); // Raw Data
    
    Return Type Description
    string EMV QRCode in raw data format

    Install

    npm i emv-qrcps

    DownloadsWeekly Downloads

    31

    Version

    0.0.7

    License

    ISC

    Unpacked Size

    122 kB

    Total Files

    12

    Last publish

    Collaborators

    • avatar