public static async Task <RaveApiResponse <RaveFeesData> > GetFees(GetFeesParams feesParams)
        {
            var paramsBody  = new StringContent(JsonConvert.SerializeObject(feesParams), Encoding.UTF8, "application/json");
            var httpMessage = new HttpRequestMessage(HttpMethod.Post, Enpoints.GetFees)
            {
                Content = paramsBody
            };

            return(await ApiRequest.Request(httpMessage));
        }
        public static async Task <RaveApiResponse <RefundsResponseData> > MakeRefund(RaveRefundParams refundParams)
        {
            var paramsBody = new StringContent(JsonConvert.SerializeObject(refundParams), Encoding.UTF8, "application/json");

            var httpMessage = new HttpRequestMessage(HttpMethod.Post, Enpoints.MakeRefund)
            {
                Content = paramsBody
            };

            return(await ApiRequest.Request(httpMessage));
        }
        public async Task <RaveApiResponse <IEnumerable <RecuringBillingResponseData> > > ListRecurrentBilling(RecurringParams recurringParams)
        {
            var privateRequest = new RavePayApiRequest <RaveApiResponse <IEnumerable <RecuringBillingResponseData> >, IEnumerable <RecuringBillingResponseData> >(_config); // This is somewhat of a bad design choice

            var requestUrl = Enpoints.ListRecurring + ReflectionUtil.RequestQueryBuilder(recurringParams);

            var httpMessage = new HttpRequestMessage(HttpMethod.Get, requestUrl);

            var result = await privateRequest.Request(httpMessage);

            return(result);
        }
        public async Task <RaveApiResponse <IEnumerable <TransactionResponseData> > > XqueryTransactionVeriication(VerifyTransactoinParams verifyParams)
        {
            var requestBody = new StringContent(JsonConvert.SerializeObject(verifyParams), Encoding.UTF8,
                                                "application/json");

            var requestMessage =
                new HttpRequestMessage(HttpMethod.Post, Enpoints.Xquery)
            {
                Content = requestBody
            };

            var privateRequest = new RavePayApiRequest <RaveApiResponse <IEnumerable <TransactionResponseData> >, IEnumerable <TransactionResponseData> >(Config);

            var result = await privateRequest.Request(requestMessage);

            return(result);
        }
        public static async Task <IEnumerable <Bank> > GetBankList()
        {
            var requestMessage = new HttpRequestMessage(HttpMethod.Get, Enpoints.GetBankList);

            return(await RavePayRequest.Request <IEnumerable <Bank> >(requestMessage));
        }