если сигнатура строится по определенному порядку параметров, то перед ее вычислением стоит этот порядок соблюсти, а если сигнатура строится по телу запроса, тогда отправлять его стоит в том виде, в котором считали сигнатуру через свойство body: bodyParams
собираю параметры в кучку, как требуется строка число,
var params = {};
params.api_key = api_key;
params.nonce = Math.round(new Date().getTime() / 1000);
params.market = String(req.headers['market']);
params.currency = String(req.headers['currency']);
params.side = String(req.headers['side']);
params.type = String(req.headers['type']);
params.amount = parseFloat(amount);
params.limit_price = parseFloat(price);
формирую сигнатуру
var hash = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(params))), api_secret).toString()
params.signature = hash;
шмаляю запрос и получаю инвалид
requestA.post({url:'url', formData: params}, function(err,httpResponse,body){