public CollectBankInfoAPIResponseData SendRequest(CollectBankInfoAPIPayload payload)
        {
            string bankInfoPayloadJSON = payload.GetJSON();

            // Prepare web request...
            HttpWebRequest httpWebRequest =
                (HttpWebRequest)WebRequest.Create(ConfigurationManager.AppSettings.Get("CollectBankInfoAPIURL"));

            httpWebRequest.Method      = "POST";
            httpWebRequest.ContentType = "application/json";

            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                streamWriter.Write(bankInfoPayloadJSON);
                streamWriter.Flush();
                streamWriter.Close();
            }

            try
            {
                using (var response = httpWebRequest.GetResponse() as HttpWebResponse)
                {
                    if (httpWebRequest.HaveResponse && response != null)
                    {
                        using (var streamReader = new StreamReader(response.GetResponseStream()))
                        {
                            var result = streamReader.ReadToEnd();
                            System.Console.WriteLine(result.ToString());
                            var serializer = new JavaScriptSerializer();
                            responseData = serializer.Deserialize <CollectBankInfoAPIResponseData>(result.ToString());
                        }
                    }
                }
            }

            catch (WebException webExp)
            {
                if (webExp.Response != null)
                {
                    using (var errResponse = (HttpWebResponse)webExp.Response)
                    {
                        using (var streamReader = new StreamReader(errResponse.GetResponseStream()))
                        {
                            var result = streamReader.ReadToEnd();
                            System.Console.WriteLine(result.ToString());
                            var serializer = new JavaScriptSerializer();
                            responseData = serializer.Deserialize <CollectBankInfoAPIResponseData>(result.ToString());
                        }
                    }
                }
            }
            catch (Exception e)
            {
                System.Console.WriteLine("Exception - " + e.Message);
            }
            return(responseData);
        }
        public void GivenCollectBankAccountInfoAPIIsCalledWithDetails(Table table)
        {
            var payloadFields = table.CreateInstance <CollectBankInfoAPIPayload>();

            responseData = CollectBankInfoAPI.SendRequest(payloadFields);
        }