Skip to content
On this page

Create Company AML Screening Request.

Accepts requests for creating Company AML Screening Request.

EnvironmentURL
Sandboxhttps://api-test.streamline.laboremus.ug/aml-pep/screening/company/aml?v=1.0
Productionhttps://api.streamline.laboremus.ug/screenings/company?v=1.0

Request

Request Type : POST

Authorization

This API uses OAuth 2.0 Client Credentials grant for authentication. You must obtain an access token from the authorization server before making API requests.

Obtaining an Access Token

Make a POST request to the token endpoint with your client credentials:

Token Endpoint: https://auth-api-demo.streamline.laboremus.ug/realms/streamline-test-realm/protocol/openid-connect/token

bash
curl --request POST \
  --url https://auth-api-demo.streamline.laboremus.ug/realms/streamline-test-realm/protocol/openid-connect/token \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data 'client_id=YOUR_CLIENT_ID' \
  --data 'client_secret=YOUR_CLIENT_SECRET' \
  --data 'grant_type=client_credentials'
curl --request POST \
  --url https://auth-api-demo.streamline.laboremus.ug/realms/streamline-test-realm/protocol/openid-connect/token \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data 'client_id=YOUR_CLIENT_ID' \
  --data 'client_secret=YOUR_CLIENT_SECRET' \
  --data 'grant_type=client_credentials'
js
const response = await fetch(
  'https://auth-api-demo.streamline.laboremus.ug/realms/streamline-test-realm/protocol/openid-connect/token',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: new URLSearchParams({
      client_id: 'YOUR_CLIENT_ID',
      client_secret: 'YOUR_CLIENT_SECRET',
      grant_type: 'client_credentials',
    }),
  }
)

const { access_token } = await response.json()
const response = await fetch(
  'https://auth-api-demo.streamline.laboremus.ug/realms/streamline-test-realm/protocol/openid-connect/token',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: new URLSearchParams({
      client_id: 'YOUR_CLIENT_ID',
      client_secret: 'YOUR_CLIENT_SECRET',
      grant_type: 'client_credentials',
    }),
  }
)

const { access_token } = await response.json()
python
import requests

response = requests.post(
    'https://auth-api-demo.streamline.laboremus.ug/realms/streamline-test-realm/protocol/openid-connect/token',
    data={
        'client_id': 'YOUR_CLIENT_ID',
        'client_secret': 'YOUR_CLIENT_SECRET',
        'grant_type': 'client_credentials',
    }
)

access_token = response.json()['access_token']
import requests

response = requests.post(
    'https://auth-api-demo.streamline.laboremus.ug/realms/streamline-test-realm/protocol/openid-connect/token',
    data={
        'client_id': 'YOUR_CLIENT_ID',
        'client_secret': 'YOUR_CLIENT_SECRET',
        'grant_type': 'client_credentials',
    }
)

access_token = response.json()['access_token']

Token Response

json
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_in": 300,
  "token_type": "Bearer"
}
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_in": 300,
  "token_type": "Bearer"
}

Using the Access Token

Include the token in the Authorization header for all API requests:

Authorization: Bearer <access_token>
Authorization: Bearer <access_token>

Token Expiration

Access tokens expire after the duration specified in expires_in (in seconds). Request a new token when the current one expires.

INFO

Always add your Subscription key to the request.

Subscription Key

Include your subscription key in every request using one of these methods:

MethodHeader/Parameter
Header (recommended)Ocp-Apim-Subscription-Key: <your_key>
Query parameter?subscription-key=<your_key>
bash
curl --request POST \
  --url 'https://api.example.com/endpoint' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
  --header 'Content-Type: application/json' \
  --data '{"key": "value"}'
curl --request POST \
  --url 'https://api.example.com/endpoint' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
  --header 'Content-Type: application/json' \
  --data '{"key": "value"}'
js
const response = await fetch(API_ENDPOINT, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Ocp-Apim-Subscription-Key': '<your_subscription_key>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(data)
})
const response = await fetch(API_ENDPOINT, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Ocp-Apim-Subscription-Key': '<your_subscription_key>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(data)
})
python
import requests

response = requests.post(
    API_ENDPOINT,
    headers={
        'Authorization': f'Bearer {access_token}',
        'Ocp-Apim-Subscription-Key': '<your_subscription_key>',
        'Content-Type': 'application/json'
    },
    json=data
)
import requests

response = requests.post(
    API_ENDPOINT,
    headers={
        'Authorization': f'Bearer {access_token}',
        'Ocp-Apim-Subscription-Key': '<your_subscription_key>',
        'Content-Type': 'application/json'
    },
    json=data
)
csharp
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", accessToken);
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "<your_subscription_key>");

var content = new StringContent(
    JsonSerializer.Serialize(data),
    Encoding.UTF8,
    "application/json"
);

var response = await client.PostAsync(API_ENDPOINT, content);
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", accessToken);
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "<your_subscription_key>");

var content = new StringContent(
    JsonSerializer.Serialize(data),
    Encoding.UTF8,
    "application/json"
);

var response = await client.PostAsync(API_ENDPOINT, content);
java
HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(API_ENDPOINT))
    .header("Authorization", "Bearer " + accessToken)
    .header("Ocp-Apim-Subscription-Key", "<your_subscription_key>")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(API_ENDPOINT))
    .header("Authorization", "Bearer " + accessToken)
    .header("Ocp-Apim-Subscription-Key", "<your_subscription_key>")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

Request Values

NameTypeRequiredDescription
referenceIdstring or nullnoA Guid / uuid / A set of unique Alphanumerical characters assigned to this verification request.
requesterIdstringnoThe unique Id of the request initiator.
companyNamestring or null (date-time)yesThe name of the company.
optionstring (Pep,Aml,Both)yesThe option for screening .

Example Request Body

json
{
"referenceId": "string",
"requesterId": "string",
"companyName": "string",
"option": "Pep"
}
{
"referenceId": "string",
"requesterId": "string",
"companyName": "string",
"option": "Pep"
}

Response

Response Values

Content type

application/json

NameTypeDescription
idstring (uuid)A Guid / uuid / A set of unique Alphanumerical characters assigned to this verification request.
createdAtstring (date-time)The date when the screening request was created.
requesterIdstring or nullThe unique Id of the request.
statusstring(Enum : Enum: Pending, Completed, Failed)Status of the request sent to verify
totalHitsinteger(int32)The total number of hits from a specific candidate's screening.
optionstring(Enum : Pep, Aml, Both)The URL to find the request
processedAtstring or null (date-time)Date at which the verification request was processed.
detailsArray of objects or nullSpecific attributes which are returned in the screening response. (Empty if no hit is returned)

details

NameTypeDescription
aliasNamesArray of string or nullA list of alias names of the entity
aliasGivenNamesArray of string or nullA list of alias given names of the entity
linksArray of string or nullA list of links for the entity This can be websites but also email addresses.
sourceTypestring or nullThe source type (Sanction, PEP, Criminal or Other).
addressArray of string or nullA list of addresses for entity
addressRemarksArray of string or nullA list of address remarks for entity
companyNumberArray of string or nullA list of company numbers for this entity.
jurisdictionArray of string or nullA list of jurisdictions for this entity.
entityTypestring or nullThe entity type for the entity
pepTypestring or nullThe Pep type for the entity
namestring or nullThe name of the entity
nameRemarksArray of string or nullA list of name remarks for this entity.
sourceIdstring or nullThe source id of the list that can be queried by the listSources API method call
sanctionDetailsArray of string or nullA list of sanction details for the entity
otherInformationArray of string or nullA list of other information for the screening candidate that cannot be categorized otherwise.
tlNamestring or nullA third party tool is used for the transliteration of the name from Arabic or Chinese script into Latin script.

Example Response Body

json
{
	"requesterId": "7eac581f-5f1a-4336-a052-2704fbbf2fb8",
	"status": "Successful",
	"totalHits": 2,
	"option": "Aml",
	"processedAt": "2023-07-21T10:43:21.7198813+03:00",
	"details": [
		{
			"aliasNames": null,
			"aliasGivenNames": null,
			"links": null,
			"sourceType": "SANCTION",
			"address": [
				"Plot ##, Kanjokya Street, Kamwokya, Kampala, Uganda (Tel.: +256 51 543 578/9);  PO BOX 33709, Kampala, Uganda Listed on: 29 Mar. 2007 (amended on 19 August 2020)"
			],
			"addressRemarks": null,
			"companyNumber": null,
			"jurisdiction": null,
			"entityType": "UNKNOWN",
			"pepType": null,
			"name": "  COMMERCIAL IMPEX (UCI) LTD",
			"nameRemarks": null,
			"sourceId": "ua_blacklist_sanction_list",
			"sanctionDetails": [
				"РБ ООН (Комітет 1533 (2004))"
			],
			"otherInformation": [
				" “Inactive – status inactive” by the authorities of the Republic of Uganda. INTERPOL-UN Security Council Special Notice web link: https://www.interpol.int/en/How-we-work/Notices/View-UN-Notices-Entities."
			],
			"tlName": null
		},
		{
			"aliasNames": [
				" COMMERCIAL IMPEX (UCI) LTD"
			],
			"aliasGivenNames": null,
			"links": [
				"https://www.gov.uk/government/publications/financial-sanctions-consolidated-list-of-targets/consolidated-list-of-targets"
			],
			"sourceType": "SANCTION",
			"address": [
				"Plot 33",
				"Kanjokya Street",
				"Kamwokya",
				"Kampala",
				"Uganda",
				"PO Box 33709"
			],
			"addressRemarks": null,
			"companyNumber": null,
			"jurisdiction": null,
			"entityType": "ENTITY",
			"pepType": null,
			"name": "COMMERCIAL IMPEX (UCI) LTD",
			"nameRemarks": null,
			"sourceId": "uk_hmt_financial_sanction_list",
			"sanctionDetails": [
				"Date listed: 30/03/2007",
				"Date designated: 29/03/2007",
				"DRC0023",
				"CDe.009",
				"Group status: Asset Freeze Targets"
			],
			"otherInformation": [
				"INTERPOL-UN Security Council Special Notice web link: https://www.interpol.int/en/How-we-work/Notices/View-UN-Notices-Entities.",
				"Democratic Republic of the Congo",
				"+256 41 533 578/9"
			],
			"tlName": null
		}		
	],
	"id": "303b28bb-7488-49db-ad6c-08db89be27fb",
	"createdAt": "2023-07-21T07:43:21.0088895Z"
}
{
	"requesterId": "7eac581f-5f1a-4336-a052-2704fbbf2fb8",
	"status": "Successful",
	"totalHits": 2,
	"option": "Aml",
	"processedAt": "2023-07-21T10:43:21.7198813+03:00",
	"details": [
		{
			"aliasNames": null,
			"aliasGivenNames": null,
			"links": null,
			"sourceType": "SANCTION",
			"address": [
				"Plot ##, Kanjokya Street, Kamwokya, Kampala, Uganda (Tel.: +256 51 543 578/9);  PO BOX 33709, Kampala, Uganda Listed on: 29 Mar. 2007 (amended on 19 August 2020)"
			],
			"addressRemarks": null,
			"companyNumber": null,
			"jurisdiction": null,
			"entityType": "UNKNOWN",
			"pepType": null,
			"name": "  COMMERCIAL IMPEX (UCI) LTD",
			"nameRemarks": null,
			"sourceId": "ua_blacklist_sanction_list",
			"sanctionDetails": [
				"РБ ООН (Комітет 1533 (2004))"
			],
			"otherInformation": [
				" “Inactive – status inactive” by the authorities of the Republic of Uganda. INTERPOL-UN Security Council Special Notice web link: https://www.interpol.int/en/How-we-work/Notices/View-UN-Notices-Entities."
			],
			"tlName": null
		},
		{
			"aliasNames": [
				" COMMERCIAL IMPEX (UCI) LTD"
			],
			"aliasGivenNames": null,
			"links": [
				"https://www.gov.uk/government/publications/financial-sanctions-consolidated-list-of-targets/consolidated-list-of-targets"
			],
			"sourceType": "SANCTION",
			"address": [
				"Plot 33",
				"Kanjokya Street",
				"Kamwokya",
				"Kampala",
				"Uganda",
				"PO Box 33709"
			],
			"addressRemarks": null,
			"companyNumber": null,
			"jurisdiction": null,
			"entityType": "ENTITY",
			"pepType": null,
			"name": "COMMERCIAL IMPEX (UCI) LTD",
			"nameRemarks": null,
			"sourceId": "uk_hmt_financial_sanction_list",
			"sanctionDetails": [
				"Date listed: 30/03/2007",
				"Date designated: 29/03/2007",
				"DRC0023",
				"CDe.009",
				"Group status: Asset Freeze Targets"
			],
			"otherInformation": [
				"INTERPOL-UN Security Council Special Notice web link: https://www.interpol.int/en/How-we-work/Notices/View-UN-Notices-Entities.",
				"Democratic Republic of the Congo",
				"+256 41 533 578/9"
			],
			"tlName": null
		}		
	],
	"id": "303b28bb-7488-49db-ad6c-08db89be27fb",
	"createdAt": "2023-07-21T07:43:21.0088895Z"
}

Error Response

Tech served right