The CredCo plug-in is used to interface with CredCo to order credit data. Credit can be ordered on both individual or multiple borrowers. Interfacing with CredCo is synchronous, performed directly from QBO over HTTPS. Requests can be queued so that Queue Service can process a high number of requests. Note this interface supports both Synchronous and Asynchronous invocation depending on the version of the qbo install invoking.
Data Structures
Core credit tables:
CreditReport - used to track a credit order attributes and associate with a Loan record and Borrowers
CreditLiability - Trade-line returned by CredCo
Associated tables:
Loan - loan related information as well as grouping borrowers
Borrower - borrower information including name, address and SSN
ObjectLink - associate Borrower records under a loan to a CreditReport record
Attachment - PDF version of Credit Report
Score/ScoreItem - each credit score returned by CredCo
Message - various notes related to credit report including: Transunion Hawk Alert, OFAC alerts, Trade-line messages and error messages
Installation
Get latest projects from Trunk:
Application Tier/qbo.Application
Applicaiton Tier/qbo.Import
Application Tier/qbo.Credit
Application Tier/qbo.CreditWeb
Plugins/Credit/qbo.Service.CredCo
Examine seed script: qbo.Service.CredCo/Config/Setup.CredcoStandard.xml. This contains the necessary configuration items to install into the target application. There are credential records that will be seeded. Ensure you update the username, password and domain with your corresponding CredCo account. Manually adjust the CredCo credential to match each respective account (UAT or PROD)
Build and Deploy Projects
Run seed script by either:
Navigating to Design > Configuration > Packages and clicking CredCo Standard OR
Pasting seed script content into /Import/ImportFile.ashx/TestHarness
Certificate Installation
CredCo requires digital certificate verification along with account information. The digital certificate must be installed on every machine that interfaces with CredCo. To install the digital certificate (.pfx) file they have provided, RDP into the machine(s):
Import PFX into certificate store
Copy PFX to a temporary location
Start > Run > mmc
File > Add/Remove Snap-In
Choose Certificates in left pane and click Add button
Select Computer Account from radio button
Select Local computer and Finish
Under Certificates > Personal > Certificates, right click and choose Import
Browse to PFX certificate from temporary location. You'll need to choose Personal Information Exchange from file type drop down
Input password provided by CredCo
Do not allow export of private key
Visually verify certificate has been imported from MMC Certificate Snap-In
Grant access to certificates in store by navigating to C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys in Windows explorer. Sort by date and for the latest file name (Guid based) apply Full Control permission to IIS APPPOOL\{Your Website Name as labeled in INETMGR}.
Export public key certificate to file system
From MMC Certificate Snap-In, right click newly imported certificate > All Tasks > Export > Next
Choose DER Encoded Binary (should be default option)
Browse to C:\Program Files (x86)\Quandis\Certificates
Save file as Quandis.CredCo.cer
This public file will be accessed by the interface when making calls to CredCo
Unit Testing / Test Scripts
C# Test Scripts exist under Trunk > Plugins > Credit > qbo.Service.CredCoTestCases
A Jasmine test script has been created to test the interface. To test, navigate to:
Design > Specifications > Credit > Credco Interface
Order Logic
Invoking Contact/CredCoReport automatically:
Inserts a CreditReport and inserts ObjectLink records to the ContactIDs supplied. The method call accepts parmeters:
ID - Primary contact credit will be ordered on
SecondaryContactID - (Optional) - if provided interface will include this contact as the secondary application in a Joint report
Bureaus - (Optional) This can be specified by passing:
Bureaus - which can contain "Experian,TransUnion,Equifax" or "EX,TU,EQ" or "TriMerge" OR
Separate parameters:
ExperianIndicator - {True|False}
TransUnionIndicator - {True|False}
EquifaxIndicator - {True|False}
If Bureaus are not passed, there is a global setting managed in config file setting Properties.Settings.Default.DefaultBureaus.
Example Usage
Contact/CredCoReport?ID=123&Bureaus=EX,TU
Contact/CredCoReport?ID=123&SecondaryContactID=456&Bureaus=TriMerge
Contact/CredCoReport?ID=123&ExperianIndicator=True
Contact/CredCoReport?ID=123 - Note this will use the global bureau setting
Ordering From QBO Workflow
The following example outlines how to configure a QBO workflow to order credit. In this example, the workflow is based off Loan which implies credit will be ordered for all contacts under the Loan. The workflow can be launch under a Loan via automation or ad-hoc:
Create a DecisionTemplate based off Object Loan. Design > Workflows > Options > New Template
Add a Step to order place orders.
Note the Query is using Contact/Search based off Decision.Object and Decision.Object which is intended to be loan. Additional filtering can be applied in the Parameters
The Bureaus can be specified in Action parameters
IService Execution Steps
To Execute the report:
Directly From Url: /Contact/Contact.ashx/CredCoReport?ID={x}
From DecisionStep: Object: Contact, Operation: CredCoReport, Parameters: ID={x}.
Executing report will:
Execute statement CreditReport/CreditRequestData?ID={ID} to source borrower data
Transform data into MISMO request using Templates/Credit/CredCo.Request.xslt
Invoke CredCo interface using qbo.Service.CredCo Plug In
Consume native CredCo MISMO response by invoking ImportFileTemplate CredCo Credit Report
Troubleshooting
Credit Report Order Execution Failure
The test spec is a good starting point to review the steps required to place a credit order. If the test spec does not function correctly, please troubleshoot the following items:
Ensure Contact exists in database and that it's Object/ObjectID are set (Eg. Loan / x)
Ensure Credentials and CredCo endpoint exists in ConfigurationEntry and SystemDefault respectively. You can also verify by viewing the Xml request that is sent to the Plug-in to request to credit from the browser:
/Credit/CreditReport.ashx/CreditRequestData?ID={ID}&Transform=Templates/Credit/CredCo.Request.xslt&Output=Xml
Ensure digital certificate provided by CredCo is installed correctly. See above.
If you feel the issue is occurring during or after the request is made to CredCo, trace the ServiceRequest record that is created when the request is being made:
/Credit/CreditReport.ashx/ID={ID} > ServiceRequests
Look to see if there is a link to ImportFileTemplate CredCo Credit Report . If the link exists, drill into the corresponding ImportFile record and look at ImportLogs, pre-transform and response data to obtain direction
If an ImportFile link does not exist, check rolling.log on the machine placing the request to look for additional error data