long AccessNumberThread::Body(void*)
{
    HttpRequest req;
    HttpRequest::StringMap headers;
    headers.Put("Content-Type", "application/json");
    headers.Put("Accept", "*/*");

    util::JsonObject json;
    json["webOTT"] = json::String(m_webOTT);
    String payload = json.ToString();

    String url = String().Format("%s/rps/accessnumber", m_backend.c_str());

    int retryCount = 0;
    while(req.GetHttpStatusCode() != 200 && retryCount++ < MAX_TRIES)
    {
        CvShared::SleepFor(CvShared::Millisecs(RETRY_INTERVAL_MILLISEC).Value());

        req.SetHeaders(headers);
        req.SetContent(payload);
        req.Execute(MPinSDK::IHttpRequest::POST, url);
    }

    json.Clear();
    util::JsonObject mpinResponse;
    mpinResponse.Parse(req.GetResponseData().c_str());
    json["mpinResponse"] = mpinResponse;
    payload = json.ToString();

    req.SetHeaders(headers);
    req.SetContent(payload);
    req.Execute(MPinSDK::IHttpRequest::POST, m_authenticateURL);

    return 0;
}