Sometimes while activating device users will find activation errors. In that case, please install tools like Fiddler and check if Logon call works and only ActivateDevice call is failing with 401 error.

Request:

POST http://<RSSERVERURL>:<PORT>/RetailServer/v1/ActivateDevice
HTTP/1.1

Content-Type: application/json;odata=verbose

DataServiceVersion: 3.0

Prefer: return-content

Accept: application/json;odata=nometadata

MaxDataServiceVersion: 3.0

Accept-Language: en-US

UA-CPU: AMD64

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64;
x64; Trident/7.0; MSAppHost/2.0; rv:11.0) like Gecko

Connection: Keep-Alive

Content-Length: 47

Pragma: no-cache

 

{"deviceNumber":"mPOS001","terminalId":"000001"}

 

 Response:

HTTP/1.1 401
Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed

Content-Type: text/html

Server: Microsoft-IIS/8.0

X-Powered-By: ASP.NET

Access-Control-Allow-Methods:
GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS

Access-Control-Allow-Headers: Content-Type,
Accept, MaxDataServiceVersion, Origin, Content-Id, DataServiceVersion, Prefer,
Cookie

Access-Control-Expose-Headers:
DataServiceVersion, Location

Access-Control-Max-Age: 1728000

Access-Control-Allow-Credentials: true

X-Content-Type-Options: nosniff

Date: Fri, 25 Apr 2014 21:20:42 GMT

Content-Length: 1293

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1"/>

<title>401 - Unauthorized: Access is denied
due to invalid credentials.</title>

<style type="text/css">

<!--

body{margin:0;font-size:.7em;font-family:Verdana,
Arial, Helvetica, sans-serif;background:#EEEEEE;}

fieldset{padding:0 15px 10px 15px;}

h1{font-size:2.4em;margin:0;color:#FFF;}

h2{font-size:1.7em;margin:0;color:#CC0000;}

h3{font-size:1.2em;margin:10px 0 0
0;color:#000000;}

#header{width:96%;margin:0 0 0 0;padding:6px 2%
6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;

background-color:#555555;}

#content{margin:0 0 0 2%;position:relative;}

.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}

-->

</style>

</head>

<body>

<div id="header"><h1>Server
Error</h1></div>

<div id="content">

<div class="content-container"><fieldset>

  <h2>401 - Unauthorized: Access is
denied due to invalid credentials.</h2>

  <h3>You do not have permission to
view this directory or page using the credentials that you supplied.</h3>

</fieldset></div>

</div>

</body>

</html>

If you are getting this issue, check if retail server url used is http or https.

In case "http", go to Retail server's web.config and make sure RequireSSL setting is "false"

 

So in nutshell, if you are using Retail server with http and requireSsl=true then system will not behave properly. This issue should not happen in production as in production scenario https is the recommended way.