Hello,
The JS code below allows me to create a new case:
But when I want to translate it into my C# application, I probably miss one step because I receive un unauthorized acces:
var environmentContent = "application/json"; var currentDate = DateTimeOffset.UtcNow; var content = new StringContent(serializedElement); var contentLength = Uri.EscapeUriString(serializedElement).Length; var dataToSign = "(request-target): post /v2/cases\n" + "host: rms-world-check-one-api-pilot.thomsonreuters.com\n" + "date: " + currentDate + "\n" + "content-type: " + environmentContent + "\n" + "content-length: " + contentLength + "\n" + content; var provider = new System.Security.Cryptography.HMACSHA256(Convert.FromBase64String(this.WorldCheckConfiguration.ApiSecret)); var hash = provider.ComputeHash(Encoding.UTF8.GetBytes(dataToSign)); var hmac = Convert.ToBase64String(hash); var authorisation = "Signature keyId=\"" + this.WorldCheckConfiguration.ApiKey + "\",algorithm=\"hmac-sha256\",headers=\"(request-target) host date content-type content-length\",signature=\"" + hmac + "\""; this.HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(environmentContent)); this.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("basic", authorisation); this.HttpClient.DefaultRequestHeaders.Date = currentDate; var url = this.WorldCheckConfiguration.ApiBaseUrl + "cases"; var response = await this.HttpClient.PostAsync(url, content);