{
    "VersionControl":{
        "Version":"2.0.0",
        "Description":"UPP Payment Schema",
        "Release Date":"7 Dec 2020",
        "Created by": "Chris Ong"
    },
    "MT0280":{
        "header": {
            "h001_MTI": {
                "IfNull": {
                    "DefaultValue":"0280"
                },
                "Hash":"true"
            },
            "h002_VNO": {
                "IfNull": {
                    "PropertiesValue":"true"
                },              
                "MerchantField":"VersionNo",
                "Hash":"true"
            },
            "h003_TDT": {
                "IfNull": {
                    "ClassName":"com.PayMaster.DataConversion.DateTimeConversion",
                    "MethodName":"getCurrentDate"
                },
                "Hash":"true"
            },
            "h004_TTM": {
                "IfNull": {
                    "ClassName":"com.PayMaster.DataConversion.DateTimeConversion",
                    "MethodName":"getCurrentTime"
                },
                "Hash":"true"
            }
        },
        "body": {
            "f001_MID": {
                "IfNull": {
                    "PropertiesValue":"true"
                },
                "MerchantField":"MerchantID",
                "Hash":"true"
            },
            "f007_TxnAmt": {
                "Conversion":{
                    "ClassName":"com.PayMaster.DataConversion.NumberConversion",
                    "MethodName":"convertNumberToString",
                    "Parameter":[
                        "getter('TxnAmt')"
                    ]
                },
                "MerchantField":"TxnAmt",
                "Hash":"true"
            },
            "f010_CurrCode": {
                "MerchantField":"CurrCode",
                "Hash":"true"
            },
            "f019_ExpTxnAmt": {
                "MerchantField":"ExpTxnAmt",
                "Hash":"true"
            },
            "f247_OrgTxnAmt": {
                "Conversion":{
                    "ClassName":"com.PayMaster.DataConversion.NumberConversion",
                    "MethodName":"convertNumberToString",
                    "Parameter":[
                        "getter('OrigTxnAmt')"
                    ]
                },
                "MerchantField":"OrigTxnAmt",
                "Hash":"true"
            },
            "f248_OrgCurrCode": {
                "MerchantField":"OrigCurrCode",
                "Hash":"true"
            },
            "f249_TxnCh": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "MerchantField":"TxnChannel",
                "Hash":"true"
            },
            "f250_CCProcFeeAmt": {
                "Conversion":{
                    "ClassName":"com.PayMaster.DataConversion.NumberConversion",
                    "MethodName":"convertNumberToString",
                    "Parameter":[
                        "getter('CCProcFee')"
                    ]
                },
                "MerchantField":"CCProcFee",
                "Hash":"true"
            },
            "f251_DDProcFeeAmt": {
                "Conversion":{
                    "ClassName":"com.PayMaster.DataConversion.NumberConversion",
                    "MethodName":"convertNumberToString",
                    "Parameter":[
                        "getter('DDProcFee')"
                    ]
                },
                "MerchantField":"DDProcFee",
                "Hash":"true"
            },
            "f252_PromoCode": {
                "MerchantField":"PromoCode",
                "Hash":"true"
            },
            "f253_CntyCode": {
                "MerchantField":"CountryCode",
                "Hash":"true"
            },
            "f255_IssCode": {
                "MerchantField":"CardIssuerCode",
                "Hash":"true"
            },
            "f256_FICode": {
                "MerchantField":"FICode",
                "Hash":"true"
            },
            "f260_ServID": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "MerchantField":"ServiceID",
                "Hash":"true"
            },
            "f261_HostID": {
                "MerchantField":"MerchHostID",
                "Hash":"true"
            },
            "f262_SessID": {
                "MerchantField":"MerchSessionID",
                "Hash":"true"
            },
            "f263_MRN": {
                "MerchantField":"MerchRefNo",
                "Hash":"true"
            },
            "f264_Locale": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "MerchantField":"LangLocale",
                "Hash":"true"
            },
            "f270_ORN": {
                "MerchantField":"OrderRefNo",
                "Hash":"true"
            },
            "f271_ODesc": {
                "MerchantField":"OrderDesc",
                "Hash":"true"
            },
            "f278_EMailAddr": {
                "MerchantField":"UserEmail",
                "Hash":"true"
            },
            "f279_HP": {
                "MerchantField":"UserContact",
                "Hash":"true"
            },
            "f280_RURL_UPPPS": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "Conversion": {
                    "ClassName":"com.PayMaster.DataConversion.CharacterConversion",
                    "MethodName":"replaceCharacter",
                    "Parameter":[
                        "getter('SuccRespURL')",
                        "&",
                        "^"
                    ]
                },
                "MerchantField":"SuccRespURL",
                "Hash":"true"
            },
            "f281_RURL_UPPPU": {
                "IfNull": {
                    "PropertiesValue":"true"
                },
                "Conversion": {
                    "ClassName":"com.PayMaster.DataConversion.CharacterConversion",
                    "MethodName":"replaceCharacter",
                    "Parameter":[
                        "getter('UnsuccRespURL')",
                        "&",
                        "^"
                    ]
                },
                "MerchantField":"UnsuccRespURL",
                "Hash":"true"
            },
            "f282_RURL_UPPPC": {
                "IfNull": {
                    "PropertiesValue":"true"
                },
                "Conversion": {
                    "ClassName":"com.PayMaster.DataConversion.CharacterConversion",
                    "MethodName":"replaceCharacter",
                    "Parameter":[
                        "getter('CancelRespURL')",
                        "&",
                        "^"
                    ]
                },
                "MerchantField":"CancelRespURL",
                "Hash":"true"
            },
            "f285_IPAddr": {
                "MerchantField":"UserIPAddress",
                "Hash":"true"
            },
            "f287_ExpOrgTxnAmt": {
                "MerchantField":"ExpOrigTxnAmt",
                "Hash":"true"
            },
            "f289_CustId": {
                "MerchantField":"PortalUserID",
                "Hash":"false"
            },
            "f290_Signature": {
                "MerchantField":"Signature",
                "Hash":"false"
            },
            "f350_CrdTyp": {
                "MerchantField":"CardType",
                "Hash":"true"
            },
            "f354_TID": {
                "MerchantField":"TerminalID",
                "Hash":"true"
            },
            "f325_ECommMercInd": {
                "MerchantField":"EcommMerchInd",
                "Hash":"true"
            },
            "f339_TokenFlg": {
                "MerchantField":"TokenFlag",
                "Hash":"true"
            },
            "f344_MercCustId": {
                "MerchantField":"MerchUserID",
                "Hash":"true"
            },
            "f347_TokenShrtNm": {
                "MerchantField":"TokenShrtName",
                "Hash":"true"
            },
            "f362_PreAuthFlg": {
                "MerchantField":"PreAuthFlag",
                "Hash":"true"
            },
            "f363_InvNum": {
                "MerchantField":"InvoiceNo",
                "Hash":"true"
            },
            "f364_Fee": {
                "MerchantField":"Fee",
                "Hash":"true"
            },
            "f365_POSEnvFlg": {
                "MerchantField":"POSEnvFlag",
                "Version":{
                    "Published":"6"
                },
                "Hash":"true"
            }
        },
        "trailer": {
            "t001_SHT": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "MerchantField":"SHAlgorithmType",
                "Hash":"false"
            },
            "t002_SHV": {
                "IfNull":{
                    "ClassName":"com.PayMaster.SecureHash.MessageHashing",
                    "MethodName":"hashMessageInSHA2",
                    "Parameter":[
                        "prop('SecretKey')",
                        "getter('hashMessage')"
                    ]
                },
                "Hash":"false"
            }
        }
    },
    
    "MT0290":{
        "header": {
            "h001_MTI": {
                "Hash":"true"
            },
            "h002_VNO": {               
                "MerchantField":"VersionNo",
                "Hash":"true"
            },
            "h003_TDT": {
                "Hash":"true"
            },
            "h004_TTM": {
                "Hash":"true"
            }
        },
        "body": {
            "f001_MID": {
                "MerchantField":"MerchantID",
                "Hash":"true"
            },
            "f004_PAN": {
                "MerchantField":"CardNo",
                "Hash":"true"
            },
            "f005_ExpDate": {
                "SplitConversion":{
                    "ClassName":"com.PayMaster.DataConversion.SubstringConversion",
                    "MethodName":"substringConversion",
                    "Parameter":[
                        "getter('f005_ExpDate')",
                        "2"
                    ],
                    "MerchantField":["ExpiryYear","ExpiryMth"]
                },
                "Hash":"true"
            },
            "f006_TxnDtTm": {
                "MerchantField":"TxnDtTm",
                "Hash":"true"
            },
            "f007_TxnAmt": {
                "MerchantField":"TxnAmt",
                "Conversion":{
                    "ClassName":"com.PayMaster.DataConversion.NumberConversion",
                    "MethodName":"convertStringToNumber",
                    "Parameter":[
                        "getter('f007_TxnAmt')",
                        "getter('f019_ExpTxnAmt')"
                    ]
                },
                "Hash":"true"
            },
            "f009_RespCode": { 
                "IfElse":{
                    "FromValue":"getter('f283_UPP_PM')",
                    "CompareTo":"00",
                    "True":"getter('f009_RespCode')",
                    "False": "getter('f254_DDRespCode')"
                },
                "MerchantField":"TxnStatus",
                "Hash":"true"
            },
            "f010_CurrCode": {
                "MerchantField":"CurrCode",
                "Hash":"true"
            },
            "f011_AuthIDResp": {
                "MerchantField":"AuthIDRespCode",
                "Hash":"true"
            },
            "f019_ExpTxnAmt": {
                "MerchantField":"ExpTxnAmt",
                "Hash":"true"
            },
            "f023_RRN": {
                "MerchantField":"RetrievalRefNo",
                "Hash":"true"
            },
            "f024_OrgRespCode": {
                "IfElse":{
                    "FromValue":"getter('f283_UPP_PM')",
                    "CompareTo":"00",
                    "True":"getter('f024_OrgRespCode')",
                    "False": "getter('f286_OrgDDRespCode')"
                },
                "MerchantField":"OrigRespCode",
                "Hash":"true"
            },
            "f254_DDRespCode": { 
                "IfElse":{
                    "FromValue":"getter('f283_UPP_PM')",
                    "CompareTo":"00",
                    "True":"getter('f009_RespCode')",
                    "False": "getter('f254_DDRespCode')"
                },
                "MerchantField":"TxnStatus",
                "Hash":"true"
            },
            "f256_FICode": {
                "MerchantField":"FICode",
                "Hash":"true"
            },
            "f257_PGRN": {
                "MerchantField":"PymtGwRefNo",
                "Hash":"true"
            },
            "f258_TxnStatDetCde": {
                "MerchantField":"TxnStatDetCde",
                "Hash":"true"
            },
            "f259_TxnStatMsg": {
                "MerchantField":"TxnStatMsg",
                "Hash":"true"
            },
            "f260_ServID": {
                "MerchantField":"ServiceID",
                "Hash":"true"
            },
            "f261_HostID": {
                "MerchantField":"MerchHostID",
                "Hash":"true"
            },
            "f262_SessID": {
                "MerchantField":"MerchSessionID",
                "Hash":"true"
            },
            "f263_MRN": {
                "MerchantField":"MerchRefNo",
                "Hash":"true"
            },
            "f270_ORN": {
                "MerchantField":"OrderRefNo",
                "Hash":"true"
            },
            "f277_DDRN": {
                "MerchantField":"FPXRefNo",
                "Hash":"true"
            },
            "f283_UPP_PM": {
                "MerchantField":"UppPymtMode",
                "Hash":"true"
            },
            "f286_OrgDDRespCode": {
                "IfElse":{
                    "FromValue":"getter('f283_UPP_PM')",
                    "CompareTo":"00",
                    "True":"getter('f024_OrgRespCode')",
                    "False": "getter('f286_OrgDDRespCode')"
                },
                "MerchantField":"OrigRespCode",
                "Hash":"true"
            },
            "f350_CrdTyp": {
                "MerchantField":"CardType",
                "Hash":"true"
            },
            "f352_AcqBank": {
                "MerchantField":"AcqBank",
                "Hash":"true"
            },
            "f353_IPPTenure": {
                "MerchantField":"IPPTenure",
                "Hash":"true"
            },
            "f325_ECommMercInd": {
                "MerchantField":"EcommMerchInd",
                "Hash":"true"
            },
            "f339_TokenFlg": {
                "MerchantField":"TokenFlag",
                "Hash":"true"
            },
            "f344_MercCustId": {
                "MerchantField":"MerchUserID",
                "Hash":"true"
            },
            "f346_Token": {
                "MerchantField":"Token",
                "Hash":"true"
            },
            "f347_TokenShrtNm": {
                "MerchantField":"TokenShrtName",
                "Hash":"true"
            },
            "f348_MaskPAN": {
                "MerchantField":"MaskCardNo",
                "Hash":"true"
            },
            "f365_POSEnvFlg": {
                "MerchantField":"POSEnvFlag",
                "Version":{
                    "Published":"6"
                },
                "Hash":"true"
            }
        },
        "trailer": {
            "t001_SHT": {
                "MerchantField":"SHAlgorithmType",
                "Hash":"false"
            },
            "t002_SHV": {
                "MerchantField":"SHValue",
                "Hash":"false"
            }
        }
    },
    "MT0780":{
        "header":{
            "h001_MTI": {
                "IfNull": {
                    "DefaultValue":"0100"
                },
                "Hash":"true"
            },
            "h002_VNO": {
                "IfNull": {
                    "PropertiesValue":"true"
                },              
                "MerchantField":"VersionNo",
                "Hash":"true"
            },
            "h003_TDT": {
                "IfNull": {
                    "ClassName":"com.PayMaster.DataConversion.DateTimeConversion",
                    "MethodName":"getCurrentDate"
                },
                "Hash":"true"
            },
            "h004_TTM": {
                "IfNull": {
                    "ClassName":"com.PayMaster.DataConversion.DateTimeConversion",
                    "MethodName":"getCurrentTime"
                },
                "Hash":"true"
            }
        },
        "body":{
            "f001_MID": {
                "IfNull": {
                    "PropertiesValue":"true"
                },
                "MerchantField":"MerchantID",
                "Hash":"true"
            },
            "f260_ServID": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "MerchantField":"ServiceID",
                "Hash":"true"
            },
            "f263_MRN": {
                "MerchantField":"MerchRefNo",
                "Hash":"true"
            },
            "f284_RURL_UPPPQ": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "Conversion": {
                    "ClassName":"com.PayMaster.DataConversion.CharacterConversion",
                    "MethodName":"replaceCharacter",
                    "Parameter":[
                        "getter('QueryRespURL')",
                        "&",
                        "^"
                    ]
                },
                "MerchantField":"QueryRespURL",
                "Hash":"true"
            }
        },
        "trailer":{
            "t001_SHT": {
                "IfNull": {
                    "PropertiesValue":"true"
                },  
                "MerchantField":"SHAlgorithmType",
                "Hash":"false"
            },
            "t002_SHV": {
                "IfNull":{
                    "ClassName":"com.PayMaster.SecureHash.MessageHashing",
                    "MethodName":"hashMessageInSHA2",
                    "Parameter":[
                        "prop('SecretKey')",
                        "getter('hashMessage')"
                    ]
                },
                "Hash":"false"
            }
        }
    },
    "MT0790":{
        "header":{
            "h001_MTI": {
                "Hash":"true"
            },
            "h002_VNO": {
                "MerchantField":"VersionNo",
                "Hash":"true"
            },
            "h003_TDT": {
                "Hash":"true"
            },
            "h004_TTM": {
                "Hash":"true"
            }
        },
        "body":{
            "f001_MID":{
                "MerchantField":"MerchantID",
                "Hash":"true"
            },
            "f004_PAN":{
                "MerchantField":"CardNo",
                "Hash":"true"   
            },
            "f006_TxnDtTm":{
                "MerchantField":"TxnDtTm",
                "Hash":"true"
            },
            "f007_TxnAmt":{
                "MerchantField":"TxnAmt",
                "Conversion":{
                    "ClassName":"com.PayMaster.DataConversion.NumberConversion",
                    "MethodName":"convertStringToNumber",
                    "Parameter":[
                        "getter('f007_TxnAmt')",
                        "getter('f019_ExpTxnAmt')"
                    ]
                },
                "Hash":"true"   
            },
            "f009_RespCode":{
                "IfElse":{
                    "FromValue":"getter('f283_UPP_PM')",
                    "CompareTo":"00",
                    "True":"getter('f009_RespCode')",
                    "False": "getter('f254_DDRespCode')"
                },
                "MerchantField":"TxnStatus",
                "Hash":"true"
            },
            "f010_CurrCode":{
                "MerchantField":"CurrCode",
                "Hash":"true"
            },
            "f011_AuthIDResp":{
                "MerchantField":"AuthIDRespCode",
                "Hash":"true"
            },
            "f019_ExpTxnAmt":{
                "MerchantField":"ExpTxnAmt",
                "Hash":"true"
            },
            "f023_RRN":{
                "MerchantField":"RetrievalRefNo",
                "Hash":"true"
            },
            "f024_OrgRespCode":{
                "IfElse":{
                    "FromValue":"getter('f283_UPP_PM')",
                    "CompareTo":"00",
                    "True":"getter('f024_OrgRespCode')",
                    "False": "getter('f286_OrgDDRespCode')"
                },
                "MerchantField":"OrigRespCode",
                "Hash":"true"
            },
            "f247_OrgTxnAmt":{
                "MerchantField":"OrigTxnAmt",
                "Conversion":{
                    "ClassName":"com.PayMaster.DataConversion.NumberConversion",
                    "MethodName":"convertStringToNumber",
                    "Parameter":[
                        "getter('f247_OrgTxnAmt')",
                        "getter('f287_ExpOrgTxnAmt')"
                    ]
                },
                "Hash":"true"
            },
            "f248_OrgCurrCode":{
                "MerchantField":"OrigCurrCode",
                "Hash":"true"
            },
            "f249_TxnCh":{
                "MerchantField":"TxnChannel",
                "Hash":"true"
            },
            "f254_DDRespCode":{
                "MerchantField":"TxnStatus",
                "Hash":"true"
            },
            "f256_FICode":{
                "MerchantField":"FICode",
                "Hash":"true"
            },
            "f257_PGRN":{
                "MerchantField":"PymtGwRefNo",
                "Hash":"true"
            },
            "f258_TxnStatDetCde":{
                "MerchantField":"TxnStatDetCde",
                "Hash":"true"
            },
            "f259_TxnStatMsg":{
                "MerchantField":"TxnStatMsg",
                "Hash":"true"
            },
            "f260_ServID":{
                "MerchantField":"ServiceID",
                "Hash":"true"
            },
            "f261_HostID":{
                "MerchantField":"MerchHostID",
                "Hash":"true"
            },
            "f262_SessID":{
                "MerchantField":"MerchSessionID",
                "Hash":"true"
            },
            "f263_MRN":{
                    "MerchantField":"MerchRefNo",
                "Hash":"true"
            },
            "f270_ORN":{
                "MerchantField":"OrderRefNo",
                "Hash":"true"
            },
            "f274_QRespCode":{
                "MerchantField":"QueryStatus",
                "Hash":"true"
            },
            "f277_DDRN":{
                "MerchantField":"FPXRefNo",
                "Hash":"true"
            },
            "f283_UPP_PM":{
                "MerchantField":"UppPymtMode",
                "Hash":"true"
            },
            "f286_OrgDDRespCode":{
                "MerchantField":"OrigRespCode",
                "Hash":"true"
            },
            "f287_ExpOrgTxnAmt":{
                "MerchantField":"ExpOrigTxnAmt",
                "Hash":"true"
            }
        },
        "trailer":{
            "t001_SHT": {
                "MerchantField":"SHAlgorithmType",
                "Hash":"false"
            },
            "t002_SHV": {
                "MerchantField":"SHValue",
                "Hash":"false"
                
            }
        }
    }
}