Skip to main content

CreateCreditBureauSearchCommand

Overview

The CreateCreditBureauSearchCommand allows you to manually record credit bureau search results for loan applications. This command is used when credit checks are performed externally or through systems outside the automated workflow.

Handler File: CB.Administration.Api/Commands/BPM/SelfService/SelfServiceserDetailCommandHandlers.cs

Use Cases

  • Recording credit bureau searches done through external systems
  • Manual entry of credit reports obtained offline
  • Importing historical credit check data
  • Supporting credit bureaus not integrated with the system
  • Recording credit checks from alternative credit assessment providers

Request Parameters

Required Parameters

ParameterTypeDescription
loanQuoteIdlongThe ID of the loan quote/application
providerstringName of the credit bureau provider (e.g., "CreditRegistry", "CRC Credit Bureau")

Optional Parameters

ParameterTypeDefaultDescription
numberOfLoanDefaultsint0Number of loan defaults found in credit history
numberOfLoanint0Total number of loans in credit history
numberOfActiveLoanint0Number of currently active loans
remarksstring""Additional notes about the credit search

Request Example

{
"commandName": "CreateCreditBureauSearchCommand",
"data": {
"loanQuoteId": 999,
"provider": "CreditRegistry",
"numberOfLoanDefaults": 0,
"numberOfLoan": 3,
"numberOfActiveLoan": 1,
"remarks": "Good credit history. No defaults found. Currently servicing 1 auto loan."
}
}

Response Format

Success Response

{
"isSuccessful": true,
"statusCode": "00",
"message": "Credit bureau search record created successfully.",
"data": {
"searchId": 567,
"loanQuoteId": 999,
"provider": "CreditRegistry",
"searchStatus": 1,
"searchStatusDesc": "Successful",
"searchDate": "2026-01-11T14:30:00Z",
"numberOfLoanDefaults": 0,
"numberOfLoan": 3,
"numberOfActiveLoan": 1,
"remarks": "Good credit history. No defaults found. Currently servicing 1 auto loan.",
"createdAt": "2026-01-11T14:30:00Z"
}
}

Error Response

Loan Quote Not Found

{
"isSuccessful": false,
"statusCode": "04",
"message": "Loan quote not found."
}

Search Status

Credit bureau searches created through this command are automatically marked as Successful (status = 1), indicating that the search was completed and results were obtained.

Available Status Values:

  • 0 - Pending: Search initiated but not yet complete
  • 1 - Successful: Search completed successfully
  • 2 - Failed: Search failed or encountered errors

Credit Assessment Guidelines

Risk Indicators

The following metrics help assess credit risk:

MetricLow RiskMedium RiskHigh Risk
Loan Defaults01-23+
Active Loans0-23-45+
Total Loan History1-34-67+

Decision Matrix

NO DEFAULTS + LOW ACTIVE LOANS = Approve (Low Risk)
NO DEFAULTS + HIGH ACTIVE LOANS = Review (Medium Risk)
HAS DEFAULTS + ANY ACTIVE LOANS = Review/Decline (High Risk)
MULTIPLE DEFAULTS = Decline (Very High Risk)
  • InitiateCreditCheckCommand - Automatically fetch credit bureau data (alternative to manual entry)
  • GetCustomerLoanCreditBureauSearchesQuery - Retrieve credit searches for a loan

Integration Example

cURL Request

curl -X POST https://api.banklingo.com/execute \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"commandName": "CreateCreditBureauSearchCommand",
"data": {
"loanQuoteId": 999,
"provider": "CreditRegistry",
"numberOfLoanDefaults": 0,
"numberOfLoan": 3,
"numberOfActiveLoan": 1,
"remarks": "Good credit history"
}
}'

JavaScript Example

const response = await fetch('https://api.banklingo.com/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
commandName: 'CreateCreditBureauSearchCommand',
data: {
loanQuoteId: 999,
provider: 'CreditRegistry',
numberOfLoanDefaults: 0,
numberOfLoan: 3,
numberOfActiveLoan: 1,
remarks: 'Good credit history'
}
})
});

const result = await response.json();
console.log('Credit search recorded:', result.data.searchId);

C# Example

var command = new
{
CommandName = "CreateCreditBureauSearchCommand",
Data = new
{
LoanQuoteId = 999,
Provider = "CreditRegistry",
NumberOfLoanDefaults = 0,
NumberOfLoan = 3,
NumberOfActiveLoan = 1,
Remarks = "Good credit history. No defaults found."
}
};

var result = await _mediator.Send(command);

Best Practices

  1. Provider Names: Use consistent provider names across all searches
  2. Accuracy: Ensure all metrics are accurately transcribed from credit reports
  3. Documentation: Include detailed remarks explaining the credit assessment
  4. Timeliness: Record credit searches promptly after obtaining results
  5. Verification: Cross-verify data before submission
  6. Compliance: Ensure credit checks comply with data protection regulations
  7. Retention: Maintain credit reports as per regulatory requirements

Common Credit Bureau Providers

Nigeria

  • CRC Credit Bureau
  • FirstCentral Credit Bureau
  • XDS Credit Bureau

International

  • Experian
  • Equifax
  • TransUnion
  • Dun & Bradstreet

Workflow Comparison

Automated vs Manual Credit Checks

AspectAutomated (InitiateCreditCheckCommand)Manual (CreateCreditBureauSearchCommand)
IntegrationDirect API integrationManual data entry
SpeedReal-time (seconds)Depends on operator
CostPer-search API feesExternal bureau costs
AccuracyHigh (automated)Depends on data entry
Use CaseIntegrated providersNon-integrated providers

Technical Notes

  • Entity: CreditBureauSearch
  • Database Table: BPMLoanSelfService.CreditBureauSearch
  • Loan-Specific: Credit searches are tied to specific loan applications via LoanQuoteId
  • Status: Automatically set to "Successful" (1) when created
  • Search Date: Automatically set to current timestamp

Data Privacy Considerations

  1. Consent: Ensure borrower has consented to credit check
  2. Access Control: Limit access to credit reports to authorized personnel
  3. Audit Trail: Maintain logs of who accessed credit information
  4. Retention Policy: Delete or archive credit data per regulatory requirements
  5. Encryption: Ensure sensitive credit data is encrypted at rest and in transit

See Also