The screening request is successful if the name has no special characters in it.
The entity name for which I received a 401 error is "Böhnke Luckau GmbH"
You can avoid the issue by encoding the request payload as ‘utf-8’ and then use it to calculate the content length of the payload.
This is mandatory if the user is trying to screen names with special characters. This is done to properly calculate the content byte length and not the string length.
As per my understanding, it’s the length of the content/payload sent to the API which determines that the request will succeed or not, if your request contains special characters.
Also, when the payload is being sent in the request, it has to be sent as UTF-8 encoded.
Please find the simplified steps to achieve the same below:
1. The content body should be converted to UTF-8.
2. Calculate the length of the UTF-8 encoded content. Putting it simply, the length of UTF-8 encoded content is different than the normal payload body.
3. Use the normal payload/content body in the dataToSign variable.
4. Use the content length of the UTF-8 encoded in the dataToSign variable.
5. Send the UTF-8 encoded content/payload in the API request.
6. Send the content length of the UTF-8 encoded in the request header.
I advise you to send the same request using Postman. If it is successful, check the authorization headers and the content length in it and make sure the authorization header and the content length you are sending via your code is also the same. This should give you a success response.
Please do not include “charset”=UTF-8 as headers while sending your request, this will not solve the problem. We do not expect the charset in the request and hence it will result in error.
Let me know if this helps in solving your issue and feel free to reach out.