public async Task <BaseResponse <TransferResponse> > Transfer(TransferRequest request)
        {
            request.ValidateRequest();
            var jsonRequest = JsonConvert.SerializeObject(request);
            var signature   = Helper.EncryptData(jsonRequest, _privateKey);

            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", signature);



            var response = await _httpClient.SendAsync(new HttpRequestMessage
            {
                RequestUri = new Uri(TransferPath, UriKind.Relative),
                Method     = HttpMethod.Post,
                Content    = new StringContent(jsonRequest, Encoding.UTF8, JsonMediaType)
            });

            var jsonResponse = await response.Content.ReadAsStringAsync();

            if (!response.IsSuccessStatusCode)
            {
                throw new OpayCashierHttpException(response.StatusCode, jsonResponse);
            }

            return(JsonConvert.DeserializeObject <BaseResponse <TransferResponse> >(jsonResponse));
        }