Skip to main content

GetActivitiesQuery

Retrieve activities with optional entity filtering. Supports filtering by entity type (Client, Loan, Deposit, User), date range, and text search.

Command Name

GetActivitiesQuery

Request Parameters

ParameterTypeRequiredDescription
entitystringNoEntity type filter: Client, Loan, Deposit, or User
entityIdstringNoDatabase ID of the entity (alternative to encodedKey)
encodedKeystringNoEncoded key of the entity (alternative to entityId)
startDatestringNoStart date filter (YYYY-MM-DD format). Default: 10 years ago
endDatestringNoEnd date filter (YYYY-MM-DD format). Default: current date
searchTextstringNoSearch by username or account ID
pageNumberintegerNoPage number (default: 1)
pageSizeintegerNoItems per page (default: 50)
isExportbooleanNoExport to Excel (default: false)

Note: When using entity parameter, you must provide either entityId or encodedKey.

Request Example

All Activities (No Filter)

{
"Cmd": "GetActivitiesQuery",
"Data": {
"startDate": "2025-12-01",
"endDate": "2025-12-24",
"pageNumber": 1,
"pageSize": 50
}
}

Filter by Client

{
"Cmd": "GetActivitiesQuery",
"Data": {
"entity": "Client",
"entityId": "12345",
"startDate": "2025-01-01",
"pageSize": 50
}
}

Filter by Loan with Encoded Key

{
"Cmd": "GetActivitiesQuery",
"Data": {
"entity": "Loan",
"encodedKey": "8a80866e7f987654",
"pageSize": 100
}
}

Search by Username

{
"Cmd": "GetActivitiesQuery",
"Data": {
"searchText": "john.doe@example.com",
"startDate": "2025-12-01",
"pageSize": 50
}
}

Response Structure

{
"Status": "00",
"Message": "Activities retrieved successfully",
"Data": {
"activities": [
{
"Id": 1001,
"CreationDate": "2025-12-24T10:30:00",
"UserName": "jane.doe@banklingo.com",
"UserKey": "8a80866e7f123456",
"Action": "Create",
"ActivityDescription": "Created new deposit account",
"AffectedItemType": "DepositAccount",
"AffectedItemName": "Savings Account",
"AffectedItemId": "DEP-2025-00123",
"AffectedDepositName": "Savings Account",
"AffectedDepositEncodedKey": "8a80866e7f987654",
"AffectedDepositId": "DEP-2025-00123"
},
{
"Id": 1002,
"CreationDate": "2025-12-24T11:15:00",
"UserName": "john.smith@banklingo.com",
"UserKey": "8a80866e7f654321",
"Action": "Approval",
"ActivityDescription": "Approved loan application",
"AffectedItemType": "LoanAccount",
"AffectedItemName": "Personal Loan",
"AffectedItemId": "LN-2025-00456",
"AffectedLoanAccountName": "Personal Loan",
"AffectedLoanEncodedKey": "8a80866e7f111222",
"AffectedLoanId": "LN-2025-00456"
}
],
"totalRows": 150,
"totalPages": 3,
"currentPage": 1,
"pageSize": 50
}
}

Response Fields

Activity Object

FieldTypeDescription
IdlongActivity record ID
CreationDatedatetimeWhen the activity occurred
UserNamestringUsername/email who performed the action
UserKeystringUser's encoded key
ActionstringAction performed (Create, Update, Delete, etc.)
ActivityDescriptionstringDetailed description of the activity
AffectedItemTypestringEntity type affected (Customer, LoanAccount, DepositAccount, User)
AffectedItemNamestringName of the affected entity
AffectedItemIdstringID of the affected entity
AffectedCustomerNamestringClient name (if applicable)
AffectedCustomerEncodedKeystringClient encoded key (if applicable)
AffectedLoanAccountNamestringLoan name (if applicable)
AffectedLoanEncodedKeystringLoan encoded key (if applicable)
AffectedLoanIdstringLoan account ID (if applicable)
AffectedDepositNamestringDeposit name (if applicable)
AffectedDepositEncodedKeystringDeposit encoded key (if applicable)
AffectedDepositIdstringDeposit account ID (if applicable)
AffectedUserNamestringUser name (if applicable)
AffectedUserNameEncodedKeystringUser encoded key (if applicable)

Pagination Fields

FieldTypeDescription
totalRowsintegerTotal number of matching activities
totalPagesintegerTotal number of pages
currentPageintegerCurrent page number
pageSizeintegerItems per page

Error Responses

Invalid Entity Type

{
"Status": "96",
"Message": "Invalid entity type: Policy. Valid types: Client, Loan, Deposit, User",
"Data": null
}

Entity Not Found

{
"Status": "96",
"Message": "Loan with ID 99999 not found",
"Data": null
}

Missing Entity Identifier

{
"Status": "96",
"Message": "Either entityId or encodedKey must be provided",
"Data": null
}

System Error

{
"Status": "99",
"Message": "An error occurred while retrieving activities",
"Data": null
}

Code Examples

C# Example

Code Removed

Implementation details removed for security.

Contact support for implementation guidance.

TypeScript Example

interface GetActivitiesParams {
entity?: 'Client' | 'Loan' | 'Deposit' | 'User';
entityId?: string;
encodedKey?: string;
startDate?: string;
endDate?: string;
searchText?: string;
pageNumber?: number;
pageSize?: number;
}

async function getActivities(params: GetActivitiesParams): Promise<ActivityResponse> {
const response = await fetch('/api/core/cmd', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
Cmd: 'GetActivitiesQuery',
Data: params
})
});

if (!response.ok) {
throw new Error('Failed to fetch activities');
}

return await response.json();
}

// Usage
const activities = await getActivities({
entity: 'Loan',
entityId: '12345',
startDate: '2025-01-01',
pageSize: 100
});

Python Example

import requests
from datetime import datetime

def get_activities(entity=None, entity_id=None, encoded_key=None,
start_date=None, end_date=None, page_size=50):
"""Retrieve activities with optional filtering."""

data = {
"pageNumber": 1,
"pageSize": page_size
}

if entity:
data["entity"] = entity
if entity_id:
data["entityId"] = entity_id
if encoded_key:
data["encodedKey"] = encoded_key
if start_date:
data["startDate"] = start_date
if end_date:
data["endDate"] = end_date

payload = {
"Cmd": "GetActivitiesQuery",
"Data": data
}

response = requests.post(
'https://api.banklingo.com/api/core/cmd',
json=payload,
headers={
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
)

response.raise_for_status()
return response.json()

# Usage
result = get_activities(
entity='Client',
entity_id='12345',
start_date='2025-01-01',
end_date='2025-12-31'
)

print(f"Total activities: {result['Data']['totalRows']}")
for activity in result['Data']['activities']:
print(f"{activity['CreationDate']}: {activity['ActivityDescription']}")

Use Cases

1. Client Activity Audit

Track all activities related to a specific client:

{
"Cmd": "GetActivitiesQuery",
"Data": {
"entity": "Client",
"encodedKey": "8a80866e7f123456",
"startDate": "2025-01-01",
"pageSize": 100
}
}

2. Loan Lifecycle Tracking

Monitor all activities on a loan account:

{
"Cmd": "GetActivitiesQuery",
"Data": {
"entity": "Loan",
"entityId": "12345",
"pageSize": 50
}
}

3. Recent Platform Activities

View recent activities across all entities:

{
"Cmd": "GetActivitiesQuery",
"Data": {
"startDate": "2025-12-23",
"endDate": "2025-12-24",
"pageNumber": 1,
"pageSize": 100
}
}

4. User Activity Investigation

Find all activities performed by a specific user:

{
"Cmd": "GetActivitiesQuery",
"Data": {
"searchText": "suspicious.user@example.com",
"startDate": "2025-12-01",
"pageSize": 100
}
}

Validation Rules

  • Entity Type: Must be one of: Client, Loan, Deposit, User (case-insensitive)
  • Date Format: Dates must be in YYYY-MM-DD format
  • Date Range: startDate must be before or equal to endDate
  • Entity Identifier: When entity is provided, either entityId or encodedKey is required
  • Page Size: Must be greater than 0 (defaults to 50 if invalid)
  • Page Number: Must be greater than 0 (defaults to 1 if invalid)

Performance Notes

  • Query results are cached for 10 seconds
  • Use date range filters to limit result sets
  • Consider pagination for large datasets
  • Entity-specific queries are more efficient than full scans
  • Text search performs partial matching on username and account IDs