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
| Parameter | Type | Description |
|---|---|---|
loanQuoteId | long | The ID of the loan quote/application |
provider | string | Name of the credit bureau provider (e.g., "CreditRegistry", "CRC Credit Bureau") |
Optional Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
numberOfLoanDefaults | int | 0 | Number of loan defaults found in credit history |
numberOfLoan | int | 0 | Total number of loans in credit history |
numberOfActiveLoan | int | 0 | Number of currently active loans |
remarks | string | "" | 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:
| Metric | Low Risk | Medium Risk | High Risk |
|---|---|---|---|
| Loan Defaults | 0 | 1-2 | 3+ |
| Active Loans | 0-2 | 3-4 | 5+ |
| Total Loan History | 1-3 | 4-6 | 7+ |
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)
Related Commands
- 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
- Provider Names: Use consistent provider names across all searches
- Accuracy: Ensure all metrics are accurately transcribed from credit reports
- Documentation: Include detailed remarks explaining the credit assessment
- Timeliness: Record credit searches promptly after obtaining results
- Verification: Cross-verify data before submission
- Compliance: Ensure credit checks comply with data protection regulations
- 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
| Aspect | Automated (InitiateCreditCheckCommand) | Manual (CreateCreditBureauSearchCommand) |
|---|---|---|
| Integration | Direct API integration | Manual data entry |
| Speed | Real-time (seconds) | Depends on operator |
| Cost | Per-search API fees | External bureau costs |
| Accuracy | High (automated) | Depends on data entry |
| Use Case | Integrated providers | Non-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
- Consent: Ensure borrower has consented to credit check
- Access Control: Limit access to credit reports to authorized personnel
- Audit Trail: Maintain logs of who accessed credit information
- Retention Policy: Delete or archive credit data per regulatory requirements
- Encryption: Ensure sensitive credit data is encrypted at rest and in transit