Appearance
Get Company Profile.
End point for retrieving company profile by profileId
Endpoints
| Environment | API Endpoint |
|---|---|
| Sandbox | https://onprem-test.streamline.laboremus.ug/api/crm/v1/customer/profiles/company/{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 company profile |
Response
Response Body
Content type
application/json
Company Details
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the company record. |
| createdAt | string (ISO 8601) | The date and time the company was created. |
| lastUpdated | string (ISO 8601) | The date and time the company was last updated. |
| tenantId | string (uuid) | The tenant ID associated with the company. |
| applicationId | string (uuid) | A unique application identifier for the company. |
| companyName | string | The name of the company. |
| companyType | string | The type of company (e.g., private, public). |
| registrationNumber | string | The company’s registration number. |
| incorporationDate | string (ISO 8601) | The date the company was incorporated. |
| string | The company’s email address. |
Phone Numbers
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the phone number record. |
| createdAt | string (ISO 8601) | The date and time the phone number record was created. |
| lastUpdated | string (ISO 8601) | The date and time the phone number record was last updated. |
| number | string | The company’s phone number. |
| isPrimary | boolean | Indicates if the phone number is the primary contact. |
Addresses
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the address record. |
| createdAt | string (ISO 8601) | The date and time the address record was created. |
| lastUpdated | string (ISO 8601) | The date and time the address record was last updated. |
| country | string | The country in which the company is located. |
| type | string | The type of address (e.g., Home, Office). |
| town | string | The town or city in which the company is located. |
| district | string | The district where the company is located. |
| county | string | The county of the company's address. |
| subCounty | string | The sub-county of the company's address. |
| parish | string | The parish of the company’s address. |
| village | string | The village where the company is located. |
| isPrimary | boolean | Indicates if the address is the primary address. |
Taxpayer Details
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the tax payer record. |
| createdAt | string (ISO 8601) | The date and time the tax payer details were created. |
| lastUpdated | string (ISO 8601) | The date and time the tax payer details were last updated. |
| tin | string | The Tax Identification Number (TIN) of the company. |
| taxPayerName | string | The name of the tax payer. |
Shareholders, Directors, Partners, Secretary, and Subscribers
| Name | Type | Description |
|---|---|---|
| fullName | string | The full name of the individual. |
| uniqueId | string | A unique identifier for the individual. |
| phoneNumber | string | The individual’s phone number. |
| nationality | string | The nationality of the individual. |
| type | string | The type of role the individual holds (e.g., shareholder, director). |
| shares | string | The number of shares held by the individual. |
KCCA Trade License Details
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the trade license record. |
| createdAt | string (ISO 8601) | The date and time the trade license record was created. |
| lastUpdated | string (ISO 8601) | The date and time the trade license record was last updated. |
| referenceNumber | string | The reference number for the trade license. |
| typeOfReferenceNumber | string | The type of reference number (e.g., registration, license). |
| entityName | string | The name of the entity holding the trade license. |
Documents
| Name | Type | Description |
|---|---|---|
| id | string (uuid) | A unique identifier for the document. |
| name | string | The name of the document. |
| documentType | string | The type of document (e.g., passport, ID). |
| description | string | A brief description of the document. |
| contentType | string | The content type of the document (e.g., image/jpeg). |
| size | string | The size of the document. |
| reference | string | The reference ID of the document. |
| dateCreated | string (ISO 8601) | The date and time the document was created. |
Example Response Body
json
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"applicationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"companyName": "string",
"companyType": "string",
"registrationNumber": "string",
"incorporationDate": "string",
"email": "string",
"phoneNumbers": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"number": "string",
"isPrimary": true
}
],
"addresses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"country": "string",
"type": "Home",
"town": "string",
"district": "string",
"county": "string",
"subCounty": "string",
"parish": "string",
"village": "string",
"isPrimary": true
}
],
"taxPayerDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"tin": "string",
"taxPayerName": "string"
}
],
"shareHolders": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"directors": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"partners": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"secretary": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"kccaTradeLicenseDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"referenceNumber": "string",
"typeOfReferenceNumber": "string",
"entityName": "string"
}
],
"subscribers": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"documents": [
{
"id": "string",
"name": "string",
"documentType": "string",
"description": "string",
"contentType": "string",
"size": "string",
"reference": "string",
"dateCreated": "2024-10-01T12:28:19.050Z"
}
]
}{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"applicationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"companyName": "string",
"companyType": "string",
"registrationNumber": "string",
"incorporationDate": "string",
"email": "string",
"phoneNumbers": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"number": "string",
"isPrimary": true
}
],
"addresses": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"country": "string",
"type": "Home",
"town": "string",
"district": "string",
"county": "string",
"subCounty": "string",
"parish": "string",
"village": "string",
"isPrimary": true
}
],
"taxPayerDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"tin": "string",
"taxPayerName": "string"
}
],
"shareHolders": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"directors": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"partners": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"secretary": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"kccaTradeLicenseDetails": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"createdAt": "2024-10-01T12:28:19.049Z",
"lastUpdated": "2024-10-01T12:28:19.049Z",
"referenceNumber": "string",
"typeOfReferenceNumber": "string",
"entityName": "string"
}
],
"subscribers": [
{
"fullName": "string",
"uniqueId": "string",
"phoneNumber": "string",
"nationality": "string",
"type": "string",
"shares": "string"
}
],
"documents": [
{
"id": "string",
"name": "string",
"documentType": "string",
"description": "string",
"contentType": "string",
"size": "string",
"reference": "string",
"dateCreated": "2024-10-01T12:28:19.050Z"
}
]
}