4

I am trying to use sendmoney API to send some bitcoins using code below. But i am getting an error listed below -

Error:

{"errors":[{"id":"authentication_error","message":"invalid signature"}]}

Code I am using :

string message = time_epoch.data.epoch.ToString() + "POST" + "/v2/accounts/xxxx/transactions"+
        "{type:send,to:xxxx,amount:0.0002,currency:BTC}";

string signature = HashEncode(HashHMAC(StringEncode("xxxxxx"), StringEncode(message)));

var _client = new RestClient("https://api.coinbase.com/v2/");

var request = new RestRequest("accounts/xxxxxx/transactions", Method.POST);

request.AddHeader("CB-VERSION", "2016-10-03");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Charset", "utf-8");
request.AddHeader("CB-ACCESS-KEY", "xxxxx");
request.AddHeader("CB-ACCESS-SIGN", signature);
request.AddHeader("CB-ACCESS-TIMESTAMP", time_epoch.data.epoch.ToString());
request.AddParameter("type", "send");
request.AddParameter("to", "xxxx");
request.AddParameter("amount", "0.0002");
request.AddParameter("currency", "BTC");
request.AddParameter("idem", "9316dd16-6c09");

request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json;charset=utf-8"; };
var response = _client.Execute(request);
return _client.Execute(request).Content;
Jim
  • 2,974
  • 2
  • 19
  • 29

1 Answers1

-1

You need to add your post request body to the request's content. Remove all the request's parameters and add the following.

request.Content = new StringContent("{\"type\":\"send\",\"to\":\"xxxx\",\"amount\":0.0002,\"currency\":\"BTC\"}", Encoding.UTF8, "application/json");
Mr Mush
  • 1,538
  • 3
  • 25
  • 38