public void AuthenticateWithOAuthNeteller() { string EncodedAuthString = RestAPI.GetEncodedAuthString(api.ClientID, api.ClientSecret); var client = new RestClient(api.Endpoint); var request = new RestRequest("v1/oauth2/token", Method.POST); //should be better ways of sending basic auth, like oauth v1: //client.Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret); request.AddHeader("Authorization", "Basic " + EncodedAuthString); request.AddHeader("Content-Type", "application/json"); request.AddHeader("Cache-Control", "no-cache"); request.AddParameter("grant_type", "client_credentials"); var response = client.Execute(request); Assert.NotNull(response); Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); string result = response.Content; if ( result.Contains("error") || result.Contains("invalid_request") || result.Contains("invalid_client") || result.Contains("invalid_grant") || result.Contains("invalid") || result.Contains("unauthorized_client") || result.Contains("unsupported_grant_type") || result.Contains("invalid_scope") ) { //logger.Fatal("Error getting access token from Neteller: " + result); throw new Exception("failed"); } dynamic obj = JObject.Parse(response.Content); string accessToken = (string)obj["accessToken"]; Assert.NotNull(accessToken); }