Skip to main content

LoadEntitiesCommand - Entity Field Reference

Overview

This document lists all available fields for each queryable entity in the LoadEntitiesCommand. Use this as a reference when constructing your fields parameter.

How to Use

Click on any entity below to expand and see all available fields. Fields marked with 🔒 are blocked for security and cannot be queried.

⚠️ Important: Always Use Full Repo Names

When referencing fields, always use the full repository name exactly as shown in this documentation:

Correct: LoanQuoteRepo.Id, LoanQuoteRepo.LoanAmount, UserRepo.EmailAddress
Wrong: Using shortened names, brackets, or any other notation

Why This Matters:

  • Ensures consistent API usage
  • Maintains security through proper abstraction
  • Prevents unauthorized access to internal structures

Example:

fields: 'LoanQuoteRepo.Id, LoanQuoteRepo.QuoteId, UserRepo.EmailAddress'

The system handles all internal processing securely behind the scenes.


Self-Service Entities

UserRepo - Self-service users (Click to expand)

Available Fields

Field NameTypeDescriptionNotes
IdlongUser ID (Primary Key)✅ Safe
UserIdstringUser login ID/email✅ Safe
EmailAddressstringUser email address✅ Safe
RoleIdint?User role ID✅ Safe
UserDetailIdlong?Foreign key to UserDetail✅ Safe
UserSecurityIdlongForeign key to UserSecurity✅ Safe
UserStatusenumUser status (Active/Inactive)✅ Safe
IsProfileAdminboolIs profile administrator✅ Safe
UserClassificationenumUser classification✅ Safe
AccountTypeenumAccount type✅ Safe
CorporateProfileIdlong?Corporate profile ID (if applicable)✅ Safe
CBCustomerIdstringCore banking customer ID✅ Safe
DefaultBranchIdlongDefault branch ID✅ Safe
PrimaryAccountstringPrimary account number✅ Safe
BiometricsIdstringBiometrics ID reference✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Blocked Fields 🔒

Field NameReason
PasswordSecurity - Authentication secret
PasswordHashSecurity - Authentication secret
TwoFASecretKeySecurity - 2FA secret
SecurityAnswer1-3Security - Security questions

Example Query

{
"entity": "UserRepo",
"fields": "Id, UserId, EmailAddress, UserStatus, DefaultBranchId, DateCreated"
}
BranchRepo - Self-service branches (Click to expand)

Available Fields

Field NameTypeDescription
IdlongBranch ID (Primary Key)
BranchNamestringBranch name
BranchCodestringBranch code
AreaIdlong?Area ID
DivisionIdlong?Division ID
IsActiveboolIs branch active
AddressstringBranch address
PhoneNumberstringContact phone
EmailAddressstringContact email
DateCreateddatetimeCreation date
LastUpdateddatetimeLast update date

Example Query

{
"entity": "BranchRepo",
"fields": "Id, BranchName, BranchCode, IsActive",
"filter": "IsActive = 1",
"order": ["BranchName"]
}
LoanQuoteRepo ⭐ - Loan quotes/applications (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongLoan quote ID (Primary Key)✅ Safe
QuoteIdstringUnique quote identifier✅ Safe
QuoteEmailAddressstringApplicant email✅ Safe
QuoteExpiryDatedatetime?Quote expiration date✅ Safe
ProductIdlongLoan product ID✅ Safe
PlanIdlong?Loan plan ID✅ Safe
RequestedAmountdecimalRequested loan amount✅ Safe
LoanAmountdecimalApproved loan amount✅ Safe
InterestRatedecimalInterest rate✅ Safe
LoanTenorTypeenumTenor type (Days/Weeks/Months/Years)✅ Safe
LoanTenorintLoan tenor value✅ Safe
StartDatedatetime?Loan start date✅ Safe
EndDatedatetime?Loan end date✅ Safe
SelfServiceUserIdlong?User ID (if registered)✅ Safe
QuoteUserIdlong?Quote user ID (if unregistered)✅ Safe
CurrentApprovalLevelenumCurrent approval level✅ Safe
ApprovalStateenumApproval status✅ Safe
DisbursementStateenumDisbursement status✅ Safe
RepaymentAmountdecimalMonthly repayment amount✅ Safe
CBAccountNumberstringCore banking account number✅ Safe
SelfServiceBranchIdlongBranch ID✅ Safe
RequestIdstringRequest tracking ID✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Pending Loan Quotes

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'LoanQuoteRepo',
fields: 'Id, QuoteId, RequestedAmount, LoanAmount, ApprovalState, CurrentApprovalLevel, DateCreated',
filter: 'ApprovalState = 1',
order: ['DateCreated'],
page: 1,
size: 20
}
});

Example with JOIN - Loan Quote with User Details

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'LoanQuoteRepo',
fields: 'LoanQuoteRepo.Id, LoanQuoteRepo.QuoteId, LoanQuoteRepo.LoanAmount, UserRepo.EmailAddress, UserRepo.UserId',
joins: ['UserRepo'],
filter: 'LoanQuoteRepo.ApprovalState = 3'
}
});
Using Repo Names

Always use full repo names (e.g., LoanQuoteRepo.Id, UserRepo.EmailAddress) to reference fields from joined tables. This prevents exposing internal database structure.

UserDetailRepo ⭐ - User personal details (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongUser detail ID (Primary Key)✅ Safe
FirstNamestringFirst name✅ Safe
LastNamestringLast name✅ Safe
MiddleNamestringMiddle name✅ Safe
DateOfBirthdatetime?Date of birth✅ Safe
GenderstringGender✅ Safe
MobileNumberstringMobile phone number✅ Safe
MobileCountryCodestringCountry code✅ Safe
DisplayNamestringDisplay name✅ Safe
IdNumberstringID card number✅ Safe
CustomerCorePlatformReferencestringCore banking reference✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get User Names

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'UserDetailRepo',
fields: 'Id, FirstName, LastName, MiddleName, DisplayName, MobileNumber',
filter: 'Id = 123'
}
});

Example with JOIN - User with Details

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'UserRepo',
fields: 'UserRepo.UserId, UserRepo.EmailAddress, UserDetailRepo.FirstName, UserDetailRepo.LastName, UserDetailRepo.MobileNumber',
joins: ['UserDetailRepo'],
filter: 'UserRepo.UserStatus = 1'
}
});
GuaratorInformationRepo ⭐ - Guarantor information (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongGuarantor ID (Primary Key)✅ Safe
LoanQuoteIdlongLoan quote ID (Foreign Key)✅ Safe
FirstNamestringGuarantor first name✅ Safe
LastNamestringGuarantor last name✅ Safe
MiddleNamestringGuarantor middle name✅ Safe
EmailAddressstringGuarantor email✅ Safe
PhoneNumberstringGuarantor phone✅ Safe
AddressstringGuarantor address✅ Safe
RelationshipToApplicantstringRelationship type✅ Safe
OccupationstringGuarantor occupation✅ Safe
EmployerNamestringEmployer name✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Guarantors for Loan

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'GuaratorInformationRepo',
fields: 'Id, FirstName, LastName, EmailAddress, PhoneNumber, RelationshipToApplicant',
filter: 'LoanQuoteId = 456'
}
});

Example with JOIN - Loan with Guarantors

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'LoanQuoteRepo',
fields: 'LoanQuoteRepo.QuoteId, LoanQuoteRepo.LoanAmount, GuaratorInformationRepo.FirstName, GuaratorInformationRepo.LastName, GuaratorInformationRepo.PhoneNumber',
joins: ['GuaratorInformationRepo'],
filter: 'LoanQuoteRepo.Id = 456'
}
});
NextOfKinInformationRepo ⭐ - Next of kin details (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongNext of kin ID (Primary Key)✅ Safe
LoanQuoteIdlongLoan quote ID (Foreign Key)✅ Safe
FirstNamestringNext of kin first name✅ Safe
LastNamestringNext of kin last name✅ Safe
MiddleNamestringNext of kin middle name✅ Safe
EmailAddressstringNext of kin email✅ Safe
PhoneNumberstringNext of kin phone✅ Safe
AddressstringNext of kin address✅ Safe
RelationshipstringRelationship to applicant✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Next of Kin

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'NextOfKinInformationRepo',
fields: 'Id, FirstName, LastName, PhoneNumber, Relationship',
filter: 'LoanQuoteId = 789'
}
});
EmploymentInformationRepo ⭐ - Employment records (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongEmployment ID (Primary Key)✅ Safe
LoanQuoteIdlongLoan quote ID (Foreign Key)✅ Safe
EmployerNamestringEmployer name✅ Safe
EmployerAddressstringEmployer address✅ Safe
EmployerPhoneNumberstringEmployer phone✅ Safe
EmploymentStatusstringEmployment status✅ Safe
JobTitlestringJob title/position✅ Safe
MonthlyIncomedecimalMonthly income✅ Safe
EmploymentStartDatedatetime?Employment start date✅ Safe
YearsInServiceintYears of service✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Employment Info

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'EmploymentInformationRepo',
fields: 'Id, EmployerName, JobTitle, MonthlyIncome, EmploymentStatus',
filter: 'LoanQuoteId = 101'
}
});

Example with JOIN - Loan with Employment

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'LoanQuoteRepo',
fields: 'LoanQuoteRepo.QuoteId, LoanQuoteRepo.RequestedAmount, EmploymentInformationRepo.EmployerName, EmploymentInformationRepo.MonthlyIncome',
joins: ['EmploymentInformationRepo'],
filter: 'LoanQuoteRepo.ApprovalState = 1'
}
});
SelfServiceIdentityInformationRepo ⭐ - Identity documents (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongIdentity ID (Primary Key)✅ Safe
LoanQuoteIdlong?Loan quote ID (if applicable)✅ Safe
SelfServiceUserIdlong?User ID (if applicable)✅ Safe
IdentityTypeenumID type (Passport, Driver's License, etc.)✅ Safe
IdentityNumberstringID number⚠️ Consider sensitive
IssueDatedatetime?Issue date✅ Safe
ExpiryDatedatetime?Expiry date✅ Safe
IssuingAuthoritystringIssuing authority✅ Safe
DocumentPathstringDocument file path✅ Safe
VerificationStatusenumVerification status✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Identity Documents

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'SelfServiceIdentityInformationRepo',
fields: 'Id, IdentityType, IssueDate, ExpiryDate, VerificationStatus',
filter: 'LoanQuoteId = 202 AND VerificationStatus = 2'
}
});
SelfServiceAddressInformationRepo ⭐ - Address records (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongAddress ID (Primary Key)✅ Safe
LoanQuoteIdlong?Loan quote ID (if applicable)✅ Safe
SelfServiceUserIdlong?User ID (if applicable)✅ Safe
AddressLine1stringAddress line 1✅ Safe
AddressLine2stringAddress line 2✅ Safe
CitystringCity✅ Safe
StatestringState/Province✅ Safe
PostalCodestringPostal/ZIP code✅ Safe
CountrystringCountry✅ Safe
AddressTypestringAddress type (Residential/Office)✅ Safe
VerificationStatusenumVerification status✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Addresses

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'SelfServiceAddressInformationRepo',
fields: 'Id, AddressLine1, City, State, Country, AddressType',
filter: 'LoanQuoteId = 303'
}
});
SelfServiceDisbursementInformationRepo ⭐ - Disbursement details (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongDisbursement ID (Primary Key)✅ Safe
LoanQuoteIdlongLoan quote ID (Foreign Key)✅ Safe
AccountNumberstringDisbursement account number✅ Safe
AccountNamestringAccount name✅ Safe
BankNamestringBank name✅ Safe
BankCodestringBank code✅ Safe
AccountTypestringAccount type (Savings/Current)✅ Safe
DisbursementAmountdecimalDisbursement amount✅ Safe
DisbursementDatedatetime?Disbursement date✅ Safe
StatusenumDisbursement status✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Disbursement Info

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'SelfServiceDisbursementInformationRepo',
fields: 'Id, AccountNumber, AccountName, BankName, DisbursementAmount, Status',
filter: 'LoanQuoteId = 404'
}
});
SelfServiceLoanCollectionInformationRepo ⭐ - Collection account info (Click to expand)

Added: v2.2 (Jan 2026)

Available Fields

Field NameTypeDescriptionNotes
IdlongCollection ID (Primary Key)✅ Safe
LoanQuoteIdlongLoan quote ID (Foreign Key)✅ Safe
AccountNumberstringRepayment account number✅ Safe
AccountNamestringAccount name✅ Safe
BankNamestringBank name✅ Safe
BankCodestringBank code✅ Safe
AccountTypestringAccount type✅ Safe
CollectionMethodstringCollection method (Direct Debit/Manual)✅ Safe
MandateReferencestringMandate reference number✅ Safe
MandateStatusenumMandate status✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe

Example Query - Get Collection Info

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'SelfServiceLoanCollectionInformationRepo',
fields: 'Id, AccountNumber, AccountName, BankName, CollectionMethod, MandateStatus',
filter: 'LoanQuoteId = 505'
}
});

Example with JOIN - Loan with Collection Details

var result = doCmd('LoadEntitiesCommand', {
Data: {
entity: 'LoanQuoteRepo',
fields: 'LoanQuoteRepo.QuoteId, LoanQuoteRepo.RepaymentAmount, SelfServiceLoanCollectionInformationRepo.AccountNumber, SelfServiceLoanCollectionInformationRepo.BankName',
joins: ['SelfServiceLoanCollectionInformationRepo'],
filter: 'LoanQuoteRepo.DisbursementState = 2'
}
});

Core Banking Entities

ClientRepo - Bank clients/customers (Click to expand)

Available Fields

Field NameTypeDescriptionNotes
IdlongClient ID (Primary Key)✅ Safe
ClientClassificationenumIndividual or Group✅ Safe
ClientCodestringUnique client code✅ Safe
FirstNamestringClient first name✅ Safe
MiddleNamestringClient middle name✅ Safe
LastNamestringClient last name✅ Safe
EncodedKeystringUnique encoded key✅ Safe
DateOfBirthdatetime?Date of birth✅ Safe
GenderstringGender✅ Safe
BVNstringBank Verification Number⚠️ Consider sensitive
ImageBase64stringProfile image (base64)✅ Safe
MaritalStatusenum?Marital status✅ Safe
DateCreateddatetimeCreation date✅ Safe
LastUpdateddatetimeLast update date✅ Safe
ClientStateenumClient status✅ Safe
ClientTypeIdlongClient type ID✅ Safe
BranchIdlongBranch ID✅ Safe
ClientBranchEncodedKeystringBranch encoded key✅ Safe
AccountOfficerEncodedKeystringAccount officer key✅ Safe
AccountOfficerstringAccount officer name✅ Safe
CreatedBystringCreator username✅ Safe
CreatedByUserEncodedKeystringCreator encoded key✅ Safe
NotesstringClient notes✅ Safe

Blocked Fields 🔒

Field NameReason
SSNSecurity - Personal identification
NationalIdSecurity - Personal identification
TaxIdSecurity - Personal identification

Example Query

{
"entity": "ClientRepo",
"fields": "Id, ClientCode, FirstName, LastName, ClientState, BranchId, DateCreated",
"filter": "ClientState = 1 AND BranchId = 5",
"order": ["LastName", "FirstName"]
}

Example with JOIN

{
"entity": "ClientRepo",
"fields": "ClientRepo.Id, ClientRepo.FirstName, ClientRepo.LastName, BranchCoreRepo.BranchName",
"joins": ["BranchCoreRepo"],
"filter": "ClientRepo.ClientState = 1"
}
LoanAccountRepo - Loan accounts (Click to expand)

Available Fields

Field NameTypeDescription
IdlongLoan account ID (Primary Key)
ClientIdlongClient ID (Foreign Key)
LoanProductIdlongLoan product ID (Foreign Key)
AccountNumberstringLoan account number
LoanStateenumLoan status (Pending, Active, Closed, etc.)
LoanSubStateenumLoan sub-status
LoanAmountdecimalOriginal loan amount
InstallmentsintNumber of installments
DisbursementChannelEncodedKeystringDisbursement channel
AnticipatedDisbursementDatedatetime?Expected disbursement date
FirstRepaymentDatedatetime?First repayment date
AccountOfficerBranchEncodedKeystringOfficer branch key
AccountOfficerEncodedKeystringAccount officer key
AccountOfficerNamestringAccount officer name
PrincipalDuedecimalPrincipal due
InterestDuedecimalInterest due
PenaltyDuedecimalPenalty due
FeeDuedecimalFee due
PrincipalExpecteddecimalExpected principal
InterestExpecteddecimalExpected interest
FeesExpecteddecimalExpected fees
PenaltyExpecteddecimalExpected penalty
PrincipalPaiddecimalPrincipal paid
InterestPaiddecimalInterest paid
PenaltyPaiddecimalPenalty paid
FeePaiddecimalFee paid
EncodedKeystringUnique encoded key
DateCreateddatetimeCreation date
LastUpdateddatetimeLast update date
ClientEncodedKeystringClient encoded key

Example Query

{
"entity": "LoanAccountRepo",
"fields": "Id, AccountNumber, LoanAmount, LoanState, PrincipalDue, InterestDue",
"filter": "LoanState = 2 AND ClientId = 123",
"order": ["DateCreated"]
}

Example with JOIN (Loan with Client Details)

{
"entity": "LoanAccountRepo",
"fields": "LoanAccountRepo.Id, LoanAccountRepo.AccountNumber, LoanAccountRepo.LoanAmount, ClientRepo.FirstName, ClientRepo.LastName",
"joins": ["ClientRepo"],
"filter": "LoanAccountRepo.LoanState = 2"
}
DepositAccountRepo - Deposit accounts (Click to expand)

Available Fields

Field NameTypeDescription
IdlongDeposit account ID (Primary Key)
ClientIdlongClient ID (Foreign Key)
DepositProductIdlongDeposit product ID (Foreign Key)
SigningInstructionCodestringSigning instruction code
AccountOfficerEncodedKeystringAccount officer key
AccountOfficerNamestringAccount officer name
DepositAccountNamestringAccount name
AccountNumberstringAccount number
DepositStateenumAccount status (Active, Closed, etc.)
DepositAccountSubStateenumAccount sub-status
DepositAccountTypeenumAccount type (Savings, Current, etc.)
AccountBalancedecimalCurrent balance
BlockedAmountdecimalBlocked amount
HoldAmountdecimalAmount on hold
UnclearedChequeAmountdecimalUncleared cheque amount
InstallmentsintNumber of installments
TransactionChannelenumTransaction channel
MaximumWithdrawalAmountdecimal?Max withdrawal limit
FeeDuedecimalFee due
TaxApplieddecimalTax applied
TaxRatedecimalTax rate
InterestAccrueddecimalInterest accrued
InterestDuedecimalInterest due
InterestRatedecimalInterest rate
MaturityDatedatetime?Maturity date
EncodedKeystringUnique encoded key
DateCreateddatetimeCreation date
LastUpdateddatetimeLast update date
IsOnFreezeboolIs account frozen

Example Query

{
"entity": "DepositAccountRepo",
"fields": "Id, AccountNumber, DepositAccountName, AccountBalance, DepositState",
"filter": "DepositState = 1 AND ClientId = 123",
"order": ["AccountNumber"]
}

Example with JOIN (Account with Client Details)

{
"entity": "DepositAccountRepo",
"fields": "DepositAccountRepo.Id, DepositAccountRepo.AccountNumber, DepositAccountRepo.AccountBalance, ClientRepo.FirstName, ClientRepo.LastName, ClientRepo.PhoneNumber",
"joins": ["ClientRepo"],
"filter": "DepositAccountRepo.DepositState = 1 AND DepositAccountRepo.AccountBalance > 1000"
}
DepositTransactionRepo - Deposit transactions (Click to expand)

Available Fields

Field NameTypeDescription
IdlongTransaction ID (Primary Key)
DepositAccountIdlongDeposit account ID (Foreign Key)
CBSTransactionIdlongCBS transaction ID (Foreign Key)
TransactionAmountdecimalTransaction amount
BalancedecimalBalance after transaction
BranchEncodedKeystringBranch encoded key
TransactionEntryTypeenumEntry type (Debit/Credit)
NarrationstringTransaction narration
GLAccountIdlong?GL account ID
CurrencyCodestringCurrency code
BranchIdlong?Branch ID
TransactionDatedatetimeTransaction date
ValueDatedatetimeValue date
BookingDatedatetimeBooking date
CreatedBystringCreator username
CreatedDatedatetimeCreation date

Example Query

{
"entity": "DepositTransactionRepo",
"fields": "Id, TransactionAmount, Balance, TransactionEntryType, Narration, TransactionDate",
"filter": "DepositAccountId = 456 AND TransactionDate >= '2024-01-01'",
"order": ["TransactionDate"],
"page": 1,
"size": 50
}

Example with JOIN (Transaction with Account and Client)

{
"entity": "DepositTransactionRepo",
"fields": "DepositTransactionRepo.Id, DepositTransactionRepo.TransactionAmount, DepositTransactionRepo.Narration, DepositAccountRepo.AccountNumber, ClientRepo.FirstName, ClientRepo.LastName",
"joins": ["DepositAccountRepo", "ClientRepo"],
"filter": "DepositTransactionRepo.TransactionDate >= '2024-01-01' AND DepositTransactionRepo.TransactionAmount > 1000"
}
LoanTransactionRepo - Loan transactions (Click to expand)

Available Fields

Field NameTypeDescription
IdlongTransaction ID (Primary Key)
LoanAccountIdlongLoan account ID (Foreign Key)
CBSTransactionIdlongCBS transaction ID (Foreign Key)
TransactionAmountdecimalTransaction amount
PrincipalAmountdecimalPrincipal amount
InterestAmountdecimalInterest amount
PenaltyAmountdecimalPenalty amount
FeeAmountdecimalFee amount
BalancedecimalBalance after transaction
TransactionTypeenumTransaction type (Disbursement, Repayment, etc.)
TransactionEntryTypeenumEntry type (Debit/Credit)
NarrationstringTransaction narration
GLAccountIdlong?GL account ID
CurrencyCodestringCurrency code
BranchIdlong?Branch ID
TransactionDatedatetimeTransaction date
ValueDatedatetimeValue date
BookingDatedatetimeBooking date
CreatedBystringCreator username
CreatedDatedatetimeCreation date

Example Query

{
"entity": "LoanTransactionRepo",
"fields": "Id, TransactionAmount, PrincipalAmount, InterestAmount, TransactionType, TransactionDate",
"filter": "LoanAccountId = 789 AND TransactionType IN (1, 3)",
"order": ["TransactionDate"],
"page": 1,
"size": 50
}

Example with JOIN (Transaction with Loan and Client)

{
"entity": "LoanTransactionRepo",
"fields": "LoanTransactionRepo.Id, LoanTransactionRepo.TransactionAmount, LoanAccountRepo.AccountNumber, ClientRepo.FirstName, ClientRepo.LastName",
"joins": ["LoanAccountRepo", "ClientRepo"],
"filter": "LoanTransactionRepo.TransactionDate >= '2024-01-01'"
}

Additional Entities

DepositProductRepo - Deposit product definitions (Click to expand)

Available Fields

Field NameTypeDescription
IdlongProduct ID (Primary Key)
ProductNamestringProduct name
ProductCodestringProduct code
ProductTypeenumProduct type
InterestRatedecimalDefault interest rate
MinimumBalancedecimalMinimum balance
MaximumBalancedecimalMaximum balance
IsActiveboolIs product active
DateCreateddatetimeCreation date
LastUpdateddatetimeLast update date

Example Query

{
"entity": "DepositProductRepo",
"fields": "Id, ProductName, ProductCode, InterestRate, IsActive",
"filter": "IsActive = 1",
"order": ["ProductName"]
}
LoanProductRepo - Loan product definitions (Click to expand)

Available Fields

Field NameTypeDescription
IdlongProduct ID (Primary Key)
ProductNamestringProduct name
ProductCodestringProduct code
ProductTypeenumProduct type
InterestRatedecimalDefault interest rate
MinimumAmountdecimalMinimum loan amount
MaximumAmountdecimalMaximum loan amount
MinimumTenorintMinimum tenor (months)
MaximumTenorintMaximum tenor (months)
IsActiveboolIs product active
DateCreateddatetimeCreation date
LastUpdateddatetimeLast update date

Example Query

{
"entity": "LoanProductRepo",
"fields": "Id, ProductName, ProductCode, InterestRate, MinimumAmount, MaximumAmount, IsActive",
"filter": "IsActive = 1",
"order": ["ProductName"]
}
GLAccountRepo - General Ledger accounts (Click to expand)

Available Fields

Field NameTypeDescription
IdlongGL account ID (Primary Key)
GLAccountCodestringGL account code
GLAccountNamestringGL account name
GLAccountTypeenumAccount type (Asset, Liability, etc.)
GLAccountCategoryenumAccount category
ParentGLAccountIdlong?Parent GL account ID
IsActiveboolIs account active
AllowManualEntryboolAllow manual journal entries
DateCreateddatetimeCreation date
LastUpdateddatetimeLast update date

Example Query

{
"entity": "GLAccountRepo",
"fields": "Id, GLAccountCode, GLAccountName, GLAccountType, IsActive",
"filter": "IsActive = 1 AND GLAccountType = 1",
"order": ["GLAccountCode"]
}

How to Discover Fields Programmatically

Option 1: Query INFORMATION_SCHEMA (SQL)

If you have database access:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Client'
ORDER BY ORDINAL_POSITION

Option 2: Use LoadEntitiesCommand with Wildcard

{
"entity": "ClientRepo",
"fields": "*",
"page": 1,
"size": 1
}

This returns all safe fields (sensitive fields are automatically filtered).

Option 3: Check Entity Models

Navigate to:

  • Core Banking Entities: BankLingo.Entities/Entities/
  • Self-Service Entities: BankLingo.Entities/Entities/Administration/BPMEntities.cs

Field Naming Conventions

Without JOINs

Use simple field names:

{
"fields": "Id, AccountNumber, AccountBalance, ClientId"
}

With JOINs

Use full repo names to reference joined fields:

{
"fields": "DepositAccountRepo.Id, DepositAccountRepo.AccountNumber, ClientRepo.FirstName, ClientRepo.LastName"
}
Security: Use Repo Names Only

Always use full repository names (e.g., LoanQuoteRepo.Id, ClientRepo.FirstName) in your queries. Use only the names exactly as documented in the entity list.

Examples:

  • LoanQuoteRepo.Id - Correct (matches documented name)
  • ClientRepo.FirstName - Correct (matches documented name)
  • ❌ Any variation or shortened format

Filter Expression Examples

Numeric Comparisons

AccountBalance > 1000
LoanAmount BETWEEN 10000 AND 50000
ClientId IN (1, 2, 3, 5)

String Comparisons

FirstName = 'John'
AccountNumber LIKE '001%'
EmailAddress LIKE '%@example.com'

Date Comparisons

DateCreated >= '2024-01-01'
TransactionDate BETWEEN '2024-01-01' AND '2024-12-31'
MaturityDate IS NOT NULL

Enum Comparisons

LoanState = 2  -- Active
DepositState = 1 -- Active
ClientState IN (1, 2) -- Active or Pending

Combined Filters

ClientState = 1 AND BranchId = 5 AND DateCreated >= '2024-01-01'
AccountBalance > 1000 OR BlockedAmount > 0

Security Notes

Automatically Blocked Fields 🔒

The following field name patterns are always blocked, regardless of entity:

  • Password, PasswordHash, PasswordSalt
  • TwoFASecretKey, TwoFASecret, OTPSecret
  • SecurityAnswer1, SecurityAnswer2, SecurityAnswer3
  • ApiKey, ApiSecret, AccessToken, RefreshToken
  • PIN, TransactionPIN, CardPIN
  • CVV, CardCVV, CardSecurityCode
  • SSN, SocialSecurityNumber, TaxId, NationalId
  • Fingerprint, BiometricData

Field Validation

All requested fields are validated for:

  • ✅ Valid naming (alphanumeric, dots, brackets only)
  • ✅ Not in blocked list
  • ✅ Proper format (no SQL injection patterns)

  • Main Documentation: LoadEntitiesCommand.md
  • JOINs & Listing: LOADENTITIES_JOINS_AND_LISTING.md
  • Security Guide: LOADENTITIES_SECURITY_IMPLEMENTATION.md
  • Quick Reference: LOADENTITIES_QUICK_REFERENCE.md

Last Updated: December 26, 2024
Version: 2.1.0
Total Entities: 21 (10 Self-Service + 11 Core Banking)