Real-time Screening

Seamless workflow automation with API-based real-time screening

Make your onboarding and ongoing business operations safer and more efficient with integrated management of AML alerts.


The perfect solution for businesses of all sizes

FinScan integrates seamlessly with your internal systems for real-time screening that enables efficient customer onboarding and transactions from all entry points.

Streamline operations

Add AML screening capability to your in-house or 3rd-party applications to prevent your operations from AML risks and negative customer experience.

Faster integration

Robust proprietary APIs provide interoperability with other integration tools and applications via standards-based interfaces.

Rapid results

Consistent AML alert response of under 5 milliseconds against 4 million+ compliance records.

How it works

Simplify KYC and AML workflow management


Securely connect client applications

Use our robust API sets, SOAP and interactive run-time environments to automate bi-directional data flows, while also adding security and governance via roles and authentication services.


Create custom matching projects

Apply granular matching rules by risk level, client application, internal data source, and compliance lists, to enable a risk-based approach.


Explainable disposition of alerts

Transparent match results expedite your clearing of the hits and make it easier to explain your decisions to regulators.


Enhanced ongoing screening

Automatically re-screen your customers for any changes in their status.

Designed for developers

Powerful and easy-to-use API

The FinScan Wrapper API is a stateless web service that supports both REST and SOAP calling conventions. The REST API will accept both XML and JSON input, while the SOAP API will accept XML only. The production endpoint is supported solely on HTTPS. All requests to the production endpoint need to be SSL/TLS compliant.

var client = new RestClient("");

 var request = new RestRequest("wrapper/lookup", Method.POST);
 request.AddHeader("Accept", "application/json");
 request.RequestFormat = DataFormat.Json;
 var body = "{\n" +
            "  \"organizationName\":\"ORG_NAME\",\n" +
            "  \"userName\":\"USER_NAME\",\n" +
            "  \"password\":\"USER_PASSWORD\",\n" +
            "  \"applicationId\":\"APPL_ID\",\n" +
            "  \"lists\":[],\n" +
            "  \"searchType\":\"Individual\",\n" +
            "  \"clientId\":\"CLIENT_ID\",\n" +
            "  \"clientStatus\":\"Active\",\n" +
            "  \"nameLine\":\"CLIENT_NAME\",\n" +
            "  \"skipSearch\":\"No\"\n" +

request.AddParameter("application/json", body, ParameterType.RequestBody);

// execute the request
IRestResponse response = client.Execute(request);

// Get raw content as string
var content = response.Content;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
        Client client = Client.create();
        WebResource webResource = client.resource("");
        String input = "{\n" +
            "  \"organizationName\":\"ORG_NAME\",\n" +
            "  \"userName\":\"USER_NAME\",\n" +
            "  \"password\":\"USER_PASSWORD\",\n" +
            "  \"applicationId\":\"APPL_ID\",\n" +
            "  \"lists\":[],\n" +
            "  \"searchType\":\"Individual\",\n" +
            "  \"clientId\":\"CLIENT_ID\",\n" +
            "  \"clientStatus\":\"Active\",\n" +
            "  \"nameLine\":\"CLIENT_NAME\",\n" +
            "  \"skipSearch\":\"No\"\n" +

        ClientResponse response = webResource.type("application/json").post(ClientResponse.class, input);
            if (response.getStatus() != 200)
                throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());

            System.out.println("Output from Server .... \n");
            String output = response.getEntity(String.class);

     catch (Exception e)

    "userField2Label":"Date of Birth",
    "userField3Label":"National Id",
    "userField4Label":"User Display 4",
    "userField5Label":"User Display 5",
    "userField6Label":"User Display 6",

Want to know more about FinScan?