public ThreeDSecureLookupResponse Lookup(ThreeDSecureLookupRequest lookupRequest)
        {
            var config    = gateway.Configuration;
            var gwURL     = config.Environment.GatewayURL;
            var nonce     = lookupRequest.Nonce;
            var lookupURL = gwURL + "/merchants/" + config.MerchantId + "/client_api/v1/payment_methods/" + nonce + "/three_d_secure/lookup";
            var request   = service.GetHttpRequest(lookupURL, "POST");
            var bodyBytes = encoding.GetBytes(lookupRequest.ToJSON());

#if netcore
            request.Headers.Add("Accept", "application/json");

            var utf8_string = encoding.GetString(bodyBytes);
            request.Content = new StringContent(utf8_string, encoding, "application/json");
            request.Content.Headers.ContentLength = System.Text.UTF8Encoding.UTF8.GetByteCount(utf8_string);
#else
            request.Accept        = "application/json";
            request.ContentType   = "application/json";
            request.ContentLength = bodyBytes.Length;
            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(bodyBytes, 0, bodyBytes.Length);
            }
#endif

            var response = service.GetHttpResponse(request);

            return(new ThreeDSecureLookupResponse(response));
        }