Appearance
Get Person Profile.
End point for retrieving person profile by profileId
Endpoints
| Environment | API Endpoint |
|---|---|
| Sandbox | https://onprem-test.streamline.laboremus.ug/api/crm/v1/customer/profiles/person/{id} |
Request
Request Type : GET
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:
| Method | Header/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());Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| v | string | yes | The version of the API |
Path Parameters Values
| Name | Type | Required | Description |
|---|---|---|---|
| id | string(uuid) | yes | The Unique ID of a person profile |
Response
Content type
application/json
Response Body
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A Guid / uuid / A set of unique alphanumerical characters assigned to this verification request. |
| createdAt | string (ISO 8601) | The date and time when the object was created. |
| lastUpdated | string (ISO 8601) | The date and time when the object was last updated. |
| applicationId | string (uuid) | A unique identifier for the application associated with the verification request. |
| initiatorId | string (uuid) | A unique identifier for the initiator of the request. |
| initiatorName | string | The name of the initiator. |
| initiatorEmail | string | The email address of the initiator. |
| tenantId | string (uuid) | A unique identifier for the tenant associated with the request. |
| tenantName | string | The name of the tenant. |
| aggregatorId | string (uuid) | A unique identifier for the aggregator associated with the request. |
| aggregatorName | string | The name of the aggregator. |
| fullName | string | The full name of the individual associated with the request. |
| phoneNumber | string | The phone number of the individual. |
| string | The email address of the individual. | |
| documentNumber | string | The document number associated with the individual. |
| personId | string | A unique identifier for the person. |
| countryOfResidence | string | The country of residence of the individual. |
| isPEP | boolean | Indicates if the individual is a Politically Exposed Person (PEP). |
| pepType | string | The type of PEP, if applicable. |
| bioData | object | Personal identification information about the individual, such as name, gender, and date of birth. |
| employments | object | Lists the employment records of the individual, detailing job type, occupation, and monthly income. |
| addresses | object | Contains address records for the individual, including country, town, and whether the address is primary. |
| identifications | object | Identification documents associated with the individual, detailing the type, number, and validity of the document. |
| phoneNumbers | object | Phone numbers associated with the individual, including whether a number is primary. |
| biometricInformation | object | Information regarding biometric data and liveness detection status of the individual. |
| taxPayerDetails | object | Contains tax-related information, such as Tax Identification Number (TIN) and tax payer name. |
| documents | object | Documents associated with the individual, including document type, name, and other relevant metadata. |
| nextOfKinDetails | object | Information about the individual's next of kin, including phone number and full name. |
| memberOrAssociateDetails | object | Details of any members or associates related to the individual, including their names and relationship. |
bioData
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the biodata record. |
| createdAt | string (ISO 8601) | The date and time when the biodata record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the biodata record was last updated. |
| surname | string | The surname of the individual. |
| givenName | string | The given name of the individual. |
| otherName | string | Any additional names of the individual. |
| dateOfBirth | string (ISO 8601) | The date of birth of the individual. |
| maritalStatus | string | The marital status of the individual. |
| gender | string | The gender of the individual. |
employments
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the employment record. |
| createdAt | string (ISO 8601) | The date and time when the employment record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the employment record was last updated. |
| type | string | The type of employment (e.g., full-time, part-time). |
| occupation | string | The occupation or job title of the individual. |
| monthlyIncome | string | The monthly income of the individual from this employment. |
addresses
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the address record. |
| createdAt | string (ISO 8601) | The date and time when the address record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the address record was last updated. |
| country | string | The country of the address. |
| type | string | The type of address (e.g., home, work). |
| town | string | The town of the address. |
| district | string | The district of the address. |
| county | string | The county of the address. |
| subCounty | string | The sub-county of the address. |
| parish | string | The parish of the address. |
| village | string | The village of the address. |
| isPrimary | boolean | Indicates if this is the primary address of the individual. |
identifications
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the identification record. |
| createdAt | string (ISO 8601) | The date and time when the identification record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the identification record was last updated. |
| surname | string | The surname of the individual as per the identification document. |
| givenName | string | The given name of the individual as per the identification document. |
| otherName | string | Any additional names as per the identification document. |
| sex | string | The gender of the individual as per the identification document. |
| type | string | The type of identification document (e.g., NationalID). |
| idValue | string | The value of the identification document (e.g., ID number). |
| idNumber | string | The number of the identification document. |
| issueDate | string (ISO 8601) | The date the identification document was issued. |
| expiryDate | string (ISO 8601) | The expiry date of the identification document. |
| nationality | string | The nationality of the individual as per the identification document. |
| dateOfBirth | string (ISO 8601) | The date of birth of the individual as per the identification document. |
| isPrimary | boolean | Indicates if this is the primary identification document. |
| additionalInformation | string | Any additional information regarding the identification document. |
| requiresValidation | boolean | Indicates if the identification document requires validation. |
phoneNumbers
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the phone number record. |
| createdAt | string (ISO 8601) | The date and time when the phone number record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the phone number record was last updated. |
| number | string | The phone number. |
| isPrimary | boolean | Indicates if this is the primary phone number of the individual. |
biometricInformation
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the biometric information record. |
| createdAt | string (ISO 8601) | The date and time when the biometric information record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the biometric information record was last updated. |
| livenessStatus | boolean | Indicates the status of liveness detection. |
| livenessDetectionSubmittedAt | string (ISO 8601) | The date and time when liveness detection was submitted. |
| customerPhotoMatchStatus | boolean | Indicates if the customer photo matches. |
| customerPhotoMatchSubmittedAt | string (ISO 8601) | The date and time when the customer photo match was submitted. |
taxPayerDetails
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the tax payer details record. |
| createdAt | string (ISO 8601) | The date and time when the tax payer details were created. |
| lastUpdated | string (ISO 8601) | The date and time when the tax payer details were last updated. |
| tin | string | The Tax Identification Number (TIN) of the individual. |
| taxPayerName | string | The name of the tax payer. |
documents
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the document record. |
| name | string | The name of the document. |
| documentType | string | The type of the document (e.g., passport, ID). |
| contentType | string | The content type of the document (e.g., image/jpeg). |
nextOfKinDetails
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the next of kin record. |
| createdAt | string (ISO 8601) | The date and time when the next of kin record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the next of kin record was last updated. |
| phoneNumber | string | The phone number of the next of kin. |
| fullName | string | The full name of the next of kin. |
memberOrAssociateDetails
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the member or associate record. |
| createdAt | string (ISO 8601) | The date and time when the member or associate record was created. |
| lastUpdated | string (ISO 8601) | The date and time when the member or associate record was last updated. |
| surname | string | The surname of the member or associate. |
| givenName | string | The given name of the member or associate. |
| relationship | string | The relationship of the member or associate to the individual. |
Example Response Body
json
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"applicationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"initiatorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"initiatorName": "string",
"initiatorEmail": "string",
"tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"tenantName": "string",
"aggregatorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"aggregatorName": "string",
"fullName": "string",
"phoneNumber": "string",
"email": "string",
"documentNumber": "string",
"personId": "string",
"countryOfResidence": "string",
"isPEP": true,
"pepType": "string",
"bioData": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"surname": "string",
"givenName": "string",
"otherName": "string",
"dateOfBirth": "string",
"maritalStatus": "string",
"gender": "string"
},
"employments": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"type": "string",
"occupation": "string",
"monthlyIncome": "string"
}
],
"addresses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"country": "string",
"type": "Home",
"town": "string",
"district": "string",
"county": "string",
"subCounty": "string",
"parish": "string",
"village": "string",
"isPrimary": true
}
],
"identifications": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"surname": "string",
"givenName": "string",
"otherName": "string",
"sex": "string",
"type": "NationalID",
"idValue": "string",
"idNumber": "string",
"issueDate": "string",
"expiryDate": "string",
"nationality": "string",
"dateOfBirth": "string",
"isPrimary": true,
"additionalInformation": "string",
"requiresValidation": true
}
],
"phoneNumbers": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"number": "string",
"isPrimary": true
}
],
"biometricInformation": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"livenessStatus": true,
"livenessDetectionSubmittedAt": "2024-10-01T09:34:23.647Z",
"customerPhotoMatchStatus": true,
"customerPhotoMatchSubmittedAt": "2024-10-01T09:34:23.647Z"
},
"taxPayerDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"tin": "string",
"taxPayerName": "string"
}
],
"documents": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"documentType": "string",
"contentType": "string",
"size": "string",
"reference": "string",
"description": "string",
"dateCreated": "2024-10-01T09:34:23.647Z"
}
],
"nextOfKinDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"phoneNumber": "string",
"fullName": "string"
}
],
"memberOrAssociateDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"surname": "string",
"givenName": "string",
"relationship": "string"
}
]
}{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"applicationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"initiatorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"initiatorName": "string",
"initiatorEmail": "string",
"tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"tenantName": "string",
"aggregatorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"aggregatorName": "string",
"fullName": "string",
"phoneNumber": "string",
"email": "string",
"documentNumber": "string",
"personId": "string",
"countryOfResidence": "string",
"isPEP": true,
"pepType": "string",
"bioData": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"surname": "string",
"givenName": "string",
"otherName": "string",
"dateOfBirth": "string",
"maritalStatus": "string",
"gender": "string"
},
"employments": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"type": "string",
"occupation": "string",
"monthlyIncome": "string"
}
],
"addresses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"country": "string",
"type": "Home",
"town": "string",
"district": "string",
"county": "string",
"subCounty": "string",
"parish": "string",
"village": "string",
"isPrimary": true
}
],
"identifications": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.646Z",
"lastUpdated": "2024-10-01T09:34:23.646Z",
"surname": "string",
"givenName": "string",
"otherName": "string",
"sex": "string",
"type": "NationalID",
"idValue": "string",
"idNumber": "string",
"issueDate": "string",
"expiryDate": "string",
"nationality": "string",
"dateOfBirth": "string",
"isPrimary": true,
"additionalInformation": "string",
"requiresValidation": true
}
],
"phoneNumbers": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"number": "string",
"isPrimary": true
}
],
"biometricInformation": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"livenessStatus": true,
"livenessDetectionSubmittedAt": "2024-10-01T09:34:23.647Z",
"customerPhotoMatchStatus": true,
"customerPhotoMatchSubmittedAt": "2024-10-01T09:34:23.647Z"
},
"taxPayerDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"tin": "string",
"taxPayerName": "string"
}
],
"documents": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"documentType": "string",
"contentType": "string",
"size": "string",
"reference": "string",
"description": "string",
"dateCreated": "2024-10-01T09:34:23.647Z"
}
],
"nextOfKinDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"phoneNumber": "string",
"fullName": "string"
}
],
"memberOrAssociateDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T09:34:23.647Z",
"lastUpdated": "2024-10-01T09:34:23.647Z",
"surname": "string",
"givenName": "string",
"relationship": "string"
}
]
}