﻿{
    "echo": {
        "requestCode": "B2",
        "responseCode": "B3",
        "requestPattern": "msgSize:4/string-left-zero, message:msgSize/string-left-zero",
        "responsePattern": "errorCode:2/string, message:4/string"
    },
    "generateKey": {
        "requestCode": "A0",
        "requestPattern": "mode:1/string, keyType:3/string, keyScheme:1/string, delimiter:delimiterLength/string, keyZmkTmkFlag:keyZmkTmkFlagLength/string, keyZmkTmk:keyZmkTmkLength/string, keyScheme1:keyScheme1Length/string"
    },
    "generateKeyTmk": {
        "requestCode": "A0",
        "responseCode": "A1",
        "requestPattern": "mode:1/string, keyType:3/string, keyScheme:1/string, \";\", zmkTmkFlag:1/string, tmk:33/string, keyScheme1:1/string",
        "responsePattern": "errorCode:2/string, keyA32:33/string, rest/binary"
    },
    "generateTpk": {
        "requestCode": "HC",
        "responseCode": "HD",
        "requestPattern": "tmk:33/string, \";\", keyScheme:1/string, keyScheme1:1/string, \"0\"",
        "responsePattern": "errorCode:2/string, tpk:33/string, keyA32:33/string"
    },
    "generateTak": {
        "requestCode": "HA",
        "responseCode": "HB",
        "requestPattern": "tmk:33/string, \";\", keyScheme:1/string, keyScheme1:1/string, \"0\"",
        "responsePattern": "errorCode:2/string, tpk:33/string, keyA32:33/string"
    },
    "generateMac": {
        "requestCode": "M6",
        "responseCode": "M7",
        "requestPattern": "macMode:1/string, macInputFormat:1/string, macAlgorithm:2/string, macPaddingMethod:1/string, macKeyType:3/string, macKey:33/string, msgSizeHex:4/string-left-zero, macMessage:msgSize/string",
        "responsePattern": "errorCode:2/string, mac:8/string"
    },
    "generateCvv": {
        "requestCode": "CW",
        "responseCode": "CX",
        "requestPattern": "cvk:33/string, account:12/string, \";\", expirationDate:4/string, serviceCode:3/string",
        "responsePattern": "errorCode:2/string, cvv:3/string"
    },
    "generateArqc4": {
        "requestCode": "KW",
        "responseCode": "KX",
        "requestPattern": "modeFlag:1/string, schemeId:1/string, mkac:33/string, ivac:ivacLength/string-binhex, panLength:panLengthLength/string, panSeqNo:panSeqNoLength/string-binhex, delimiter1:delimiter1Length/string, branchHeightParams:branchHeightParamsLength/string, atc:2/string-binhex, transactionDataLengthHex:transactionDataLengthLength/string, transactionData:transactionDataLengthDec/string-binhex, delimiter2:delimiter2Length/string, arqc:8/string-binhex, arc:arcLength/string-binhex, csu:csuLength/string-binhex, padLength:padLengthLength/string, pad:padLength/string-binhex",
        "responsePattern": "errorCode:2/string, arpc/binary",
        "errorPattern": "errorCode:2/string, diagnosticData:8/string-binhex"
    },
    "generateArqc3": {
        "requestCode": "KQ",
        "responseCode": "KR",
        "requestPattern": "modeFlag:1/string, schemeId:1/string, mkac:33/string, panSeqNo:8/string-binhex, atc:2/string-binhex, unpredictableNumber:4/string-binhex, transactionDataLengthHex:transactionDataLengthLength/string, transactionData:transactionDataLengthDec/string-binhex, delimiter:delimiterLength/string, arqc:8/string-binhex, arc:arcLength/string-binhex",
        "responsePattern": "errorCode:2/string, arpc/binary",
        "errorPattern": "errorCode:2/string, diagnosticData:8/string-binhex"
    },
    "verifyMac": {
        "requestCode": "M8",
        "responseCode": "M9",
        "requestPattern": "macMode:1/string, macInputFormat:1/string, macAlgorithm:2/string, macPaddingMethod:1/string, macKeyType:3/string, macKey:33/string, msgSizeHex:4/string-left-zero, macMessage:msgSize/string, mac:8/string",
        "responsePattern": "errorCode:2/string"
    },
    "formKey": {
        "requestCode": "A4",
        "responseCode": "A5",
        "requestPattern": "numberOfComponents:1/string, keyType:3/string, keyScheme:1/string, keyComponent1:33/string, keyComponent2:33/string",
        "responsePattern": "errorCode:2/string, keyA32:33/string, keyCheckValue:6/string"
    },
    "generateKeyCheckValue": {
        "requestCode": "BU",
        "responseCode": "BV",
        "requestPattern": "keyTypeCode:2/string, keyLengthFlag:1/string, keyA32:33/string, \";\", \"0\", \"0\", kcvType:1/string",
        "responsePattern": "errorCode:2/string, keyCheckValue/binary"
    },

    "derivePinIbm": {
        "requestCode": "EE",
        "responseCode": "EF",
        "requestPattern": "pvk:pvkLength/string, offset:12/string, checkLength:2/string-left-zero, account:12/string, decimalisationTable:16/string, pinValidationData:12/string",
        "responsePattern": "errorCode:2/string, pin/binary"
    },
    "generatePin": {
        "requestCode": "JA",
        "responseCode": "JB",
        "requestPattern": "account:12/string, checkLength:2/string-left-zero",
        "responsePattern": "errorCode:2/string, pin/binary"
    },
    "generateOffsetIbm": {
        "requestCode": "BK",
        "responseCode": "BL",
        "requestPattern": "keyType:3/string, keyA32:33/string, pvk:pvkLength/string, pinBlock:16/string, pinBlockFormat:2/string, checkLength:2/string-left-zero, account:12/string, decimalisationTable:16/string, pinValidationData:12/string",
        "responsePattern": "errorCode:2/string, offset:12/string"
    },
    "verifyTermPinIbm": {
        "requestCode": "DA",
        "responseCode": "DB",
        "requestPattern": "tpk:33/string, pvk:pvkLength/string, maximumPinLength:2/string-left-zero, pinBlock:16/string, pinBlockFormat:2/string, checkLength:2/string-left-zero, account:12/string, decimalisationTable:16/string, pinValidationData:12/string, offset:12/string",
        "responsePattern": "errorCode:2/string"
    },
    "importKey": {
        "requestCode": "A6",
        "responseCode": "A7",
        "requestPattern": "keyType:3/string, zmk:33/string, keyA32:33/string, keyScheme:1/string",
        "responsePattern": "errorCode:2/string, keyA32:33/string, keyCheckValue:6/string"
    },
    "translateTpkZpk": {
        "requestCode": "CA",
        "responseCode": "CB",
        "requestPattern": "sourceTpk:33/string, destinationZpk:33/string, \"12\", sourcePinBlock:16/string, sourcePinBlockFormat:2/string, destinationPinBlockFormat:2/string, account:12/string",
        "responsePattern": "errorCode:2/string, checkLength:2/string, destinationPinBlock:16/string, pinBlockFormat:2/string"
    },
    "printPin": {
        "requestCode": "PE",
        "responseCode": "PF",
        "requestPattern": "documentType:1/string, account:12/string, pin:cryptedPinLength/string, printFields:printFieldsLength/string",
        "responsePattern": "errorCode:2/string, checkValue/binary"
    },
    "printPinEnd": {
        "responseCode": "PZ",
        "responsePattern": "errorCode:2/string"
    },
    "printFormat": {
        "requestCode": "PA",
        "responseCode": "PB",
        "requestPattern": "printFields:printFieldsLength/string",
        "responsePattern": "errorCode:2/string"
    },
    "translateTpkLmk": {
        "requestCode": "JC",
        "responseCode": "JD",
        "requestPattern": "sourceTpk:33/string, sourcePinBlock:16/string, sourcePinBlockFormat:2/string, account:12/string",
        "responsePattern": "errorCode:2/string, pin/binary"
    },
    "translateZpkLmk": {
        "requestCode": "JE",
        "responseCode": "JF",
        "requestPattern": "sourceZpk:33/string, sourcePinBlock:16/string, sourcePinBlockFormat:2/string, account:12/string",
        "responsePattern": "errorCode:2/string, pin/binary"
    },
    "generateOffsetIbmLmk": {
        "requestCode": "DE",
        "responseCode": "DF",
        "requestPattern": "pvk:pvkLength/string, pin:cryptedPinLength/string, checkLength:2/string-left-zero, account:12/string, decimalisationTable:16/string, pinValidationData:12/string",
        "responsePattern": "errorCode:2/string, offset:12/string"
    },

    "translateBdkZmkLmk": {
        "requestCode": "DW",
        "responseCode": "DX",
        "requestPattern": "zmk:33/string, bdk:33/string, \";0X1\"",
        "responsePattern": "errorCode:2/string"
    },
    "translateBdkLmkZmk": {
        "requestCode": "DY",
        "responseCode": "DZ",
        "requestPattern": "zmk:33/string, bdk:33/string",
        "responsePattern": "errorCode:2/string"
    }
}
