For a deeper look into our World Check One API, look into:

Overview |  Quickstart |  Documentation |  Downloads

question

Upvotes
Accepted
31 0 1 4

Intermittent Worldcheckone server connection issue

2% to 3% of total portal worldcheckone call/requests are getting failed with below connection issues to dev worldcheckone server

  • Unable to connect to the remote server
  • The underlying connection was closed: An unexpected error occurred on a receive.
  • The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.
  • The remote server returned an error: (503) Server Unavailable.
  • The remote server returned an error: (400) Bad Request.

Is there any known solution for this type of connection issues?

Below is the sample code snippet for call/request

----------------------------------------------------------------------------------------

string date = dateValue.ToString("R"); // WC1 header requires GMT datetime stamp

string requestendpoint = "https://" + GateWayHost + GateWayUrl + "cases/" + CaseSystemID + "/screeningRequest";


string postData = "{\"customFields\":[],\"providerTypes\":[\"WATCHLIST\"]}";


string msg = postData;

string dataToSign = "(request-target): post " + GateWayUrl + "cases/" + CaseSystemID + "/screeningRequest" + "\n" +

"host: " + GateWayHost + "\n" + // no https only the host name

"date: " + date;

string hmac = generateAuthHeader(dataToSign, APISecret);


string authorisation = "Signature keyId=\"" + APIKey + "\",algorithm=\"hmac-sha256\",headers=\"(request-target) host date\",signature=\"" + hmac + "\"";


//Defining TLS

ServicePointManager.Expect100Continue = true;

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls

| SecurityProtocolType.Tls11

| SecurityProtocolType.Tls12

| SecurityProtocolType.Ssl3;

//END


// Send the Request to the API server

HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(requestendpoint);

// Set the Headers

WebReq.Method = "POST";

WebReq.Headers.Add("Authorization", authorisation);

WebReq.Headers.Add("Cache-Control", "no-cache");

WebReq.Date = dateValue; // use datetime value GMT time

using (HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse())

{ // Status information about the request

if (WebResp.StatusCode.ToString() == "Created")

{

str = WC1CaseAuditEventRequest(requestObj, request, calledBy, quoteId, historyId, partyType, CaseSystemID, dateValue);

}

}

----------------------------------------------------------------------------------------

world-checkworld-check-oneconnection
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
4.2k 8 5 6

@vijay.shejawal

Thank you for clarifying that you are using the API call "SEQ-screen-async: Screen a case".

Request you to provide us the request headers and response headers of the failed API call.



icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@vijay.shejawal Requesting your response on this.

I am also writing you an email to understand more on the issue.

Upvotes
4.2k 8 5 6

@vijay.shejawal

You are getting a 400 Bad request or 503 service unavailable for the endpoint "SEQ-screen-sync-individual: Perform Synchronous Screening" because you are sending the incorrect payload.

Can you please confirm if the below JSON payload gives you a success response?

{
  "groupId":"{
                {Enter your group-id}}",
  "entityType": "INDIVIDUAL",
  "providerTypes": [
    "WATCHLIST"
  ],
  "name": "putin",
  "secondaryFields":[],
  "customFields":[]
}

You can declare your "postData" variable with the above payload.

Kindly let me know if this was helpful.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

We are performing SEQ-screen-async: Screen a case and we have observed intermittent failures for some of cases.

Most of our these async calls are in success while 2 to 3% are in failure with connection error as mentioned.