private static com.quantiguous.api.FundsTransferByCustomerService2.fundsTransferByCustomerService2Client createClient(Environment env)
        {
            com.quantiguous.api.FundsTransferByCustomerService2.fundsTransferByCustomerService2Client client;

            client = new com.quantiguous.api.FundsTransferByCustomerService2.fundsTransferByCustomerService2Client(
                getBinding(env), env.getEndpointAddress(SERVICE_NAME));


            if (env.needsClientCertificate())
            {
                client.ClientCredentials.ClientCertificate.Certificate = env.getClientCertificate();
            }

            if (env.needsHTTPBasicAuth())
            {
                client.ClientCredentials.UserName.UserName = env.getUser();
                client.ClientCredentials.UserName.Password = env.getPassword();
            }

            return(client);
        }
        public static com.quantiguous.api.FundsTransferByCustomerService2.getBalanceResponse getBalance(Environment env, APIBanking.com.quantiguous.api.FundsTransferByCustomerService2.getBalance request)
        {
            request.version = VERSION;
            com.quantiguous.api.FundsTransferByCustomerService2.fundsTransferByCustomerService2Client client = createClient(env);

            try
            {
                using (new System.ServiceModel.OperationContextScope((System.ServiceModel.IClientChannel)client.InnerChannel))
                {
                    System.Net.ServicePointManager.SecurityProtocol = env.getSecurityProtocol();

                    System.ServiceModel.Web.WebOperationContext.Current.OutgoingRequest.UserAgent = "APIBanking.NET";


                    IDictionaryEnumerator headers = env.getHeaders().GetEnumerator();
                    while (headers.MoveNext())
                    {
                        System.ServiceModel.Web.WebOperationContext.Current.OutgoingRequest.Headers.Add(headers.Key.ToString(), headers.Value.ToString());
                    }

                    com.quantiguous.api.FundsTransferByCustomerService2.getBalanceResponse response = client.getBalance(request);

                    return(response);
                }
            }
            catch (MessageSecurityException e)
            {
                throw new Fault(e);
            }
            catch (FaultException e)
            {
                throw new Fault(e);
            }
            catch (Exception e)
            {
                throw new Fault(e);
            }
        }