Great thanks Paweld.
with the example it work.
So now I know that the "API-sign" header is good.
I'm doing my test with "Get Account Balance"
model is :
curl --request POST \
--url
https://api.kraken.com/0/private/Balance \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \ <--- the sign is supposed to take place here
--header 'Content-Type: application/json' \
--data '
{
"nonce": 123,
"rebase_multiplier": "rebased"
}
I've got tonce: int64 for the nonce param
before creating the json and the sign I do : tonce := DateTimeToUnix(now,false)*1000;
for "API-Key" I'm using my API public key
for "API-Sign" I'm using your code with my API secret key, '/0/private/Balance' as path and 'nonce='+inttostr(tonce)+'&rebase_multiplier=rebased' as the encoded payload
my message body is '{"nonce": '+inttostr(tonce)+',"rebase_multiplier": "rebased"}'
the server response is always the same : {"error":["EAPI:Invalid key"]}
Authorisations for the API key is ALL except deposit, view closed orders and export data.
I've set my own public IPv4 adress as white list IP
and there is no time limitation for the key validity
(it's not my first exchange site. I've already done working REST API in freepascal for CoinEx, Exmo, Binance, OKX, Crypto, Bitvavo, Mexc and the permanently closed Probit.)