public string TransactionFundInsertOnlyCSV([FromBody] Payload payload)
        {
            try {
                var tranDto  = new TransactionDTOReq();
                var payLoads = payload.xmlData.Split(",").Select(x => x.Trim()).ToArray();
                tranDto.SenderBankSwiftCode = payLoads[0];
                tranDto.SenderVID           = payLoads[1];
                tranDto.ReceiverVID         = payLoads[2];
                tranDto.Amount               = payLoads[3];
                tranDto.ChannelName          = payLoads[4];
                tranDto.DeviceID             = payLoads[5];
                tranDto.MobileNumber         = payLoads[6];
                tranDto.LatLong              = payLoads[7];
                tranDto.IPAddress            = payLoads[8];
                tranDto.IDTPPIN              = payLoads[9];
                tranDto.EndToEndID           = payLoads[10];
                tranDto.SendingBankTxId      = payLoads[11];
                tranDto.SendingBankReference = payLoads[12];
                tranDto.MessageID            = payLoads[13];

                string IdtpRef = "IDTP" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
                User   sender, receiver;
                bool   senderExists   = _masterDataCache.UserDictionary.TryGetValue(tranDto.SenderVID, out sender);
                bool   receiverExists = _masterDataCache.UserDictionary.TryGetValue(tranDto.ReceiverVID, out receiver);
                if (!senderExists)
                {
                    throw new Exception("Invalid Sender");
                }
                if (!receiverExists)
                {
                    throw new Exception("Invalid Receiver");
                }

                //if(!SecurityService.DecryptAndCheck(tranDto.IDTPPIN, sender.SecretSalt, sender.IDTP_PIN)) throw new Exception("Invalid IDTP PIN");

                UserAccountInformationDTO senderAccInfo, receiverAccInfo;
                _masterDataCache.FiDictionary.TryGetValue(sender.DefaultFI, out senderAccInfo);
                _masterDataCache.FiDictionary.TryGetValue(receiver.DefaultFI, out receiverAccInfo);

                if (tranDto.ChannelName == "Mobile" && tranDto.DeviceID != senderAccInfo.DeviceID)
                {
                    throw new Exception("Invalid User Device Id");
                }


                tranDto.SenderAccNo            = senderAccInfo.AccountNumber;
                tranDto.ReceiverAccNo          = receiverAccInfo.AccountNumber;
                tranDto.SendingBankRoutingNo   = "123456";
                tranDto.ReceivingBankRoutingNo = "123456";
                tranDto.SenderBankId           = senderAccInfo.FinancialInstitutionId;
                tranDto.ReceiverBankId         = receiverAccInfo.FinancialInstitutionId;

                tranDto.PaymentNote            = "Payment Note";
                tranDto.ReferenceIDTP          = IdtpRef;
                tranDto.TransactionTypeId      = "1";
                tranDto.SenderId               = sender.UserId;
                tranDto.ReceiverId             = receiver.UserId;
                tranDto.FeeAmount              = "0";
                tranDto.VATAmount              = "0";
                tranDto.SendingPSPReference    = "";
                tranDto.ReceivingBankReference = "";
                tranDto.ReceivingPSPReference  = "";


                _idtpTransCache.SetTransValue(tranDto);

                return("Write in memory successfull");
            }
            catch (Exception e) {
                return(e.Message);
            }
        }