VerifyIQ Integration Guide
Getting started
The VerifyIQ JavaScript SDK package is available under Informed's Confidentiality Agreement.
To get started, your IT department should contact your Informed Customer Success Representative to request VerifyIQ access to the Staging and Production environments as well as the latest stable version of Informed's VerifyIQ JavaScript SDK package. The VerifyIQ package will need to be appropriately placed within your existing system of record's project file. If your IT department does not have access to the source code of your existing system of record, please contact the vendor who supplies your organization with the system of record. This documentation is written from the perspective of your IT department directly maintaining the source code of your organization's system of record.
Installation with NPM
$ npm install @informed-iq/verify-iq-sdk-ng
Installation with Yarn
$ yarn add @informed-iq/verify-iq-sdk-ng
Instantiation
VerifyIQ Instantiation Configuration Parameters
| Key | Value Type | Usage | Description |
|---|---|---|---|
| environment | String | Required | Environment Options Environment that VerifyIQ will use to interact with the respective database |
| partnerName | String | Required | Example: acmebankThe partnername will be supplied by your Informed implementation support team |
| onDocumentRequestedViaSms | Function | Optional | (stipObjects) => {console.log('onRequestDocumentsViaSms', stipObjects);}Callback passed into this function will trigger when a document is requested via SMS using RequestIQ |
| onLoad | Function | Optional | () => {console.log('onLoad');}Callback passed into this function will trigger when a VerifyIQ portal is instantiated |
Instantiation Example
import VerifyIQ from "@informed-iq/verify-iq-sdk-ng";
const viq = new VerifyIQ({
environment: VerifyIQ.Env.Staging,
partnerName: 'your-partner-name',
onDocumentRequestedViaSms: function (stipObjects) {
console.log('onRequestDocumentsViaSms', stipObjects);
},
onLoad: function () {
console.log('iFrame is loaded');
}
});
Javascript Callback Functions
The VerifyIQ SDK allows for several callback functions, which if implemented, will invoke javascript event handlers that can be used to update frontend or backend systems of updates for specific applications.
onDocumentRequestedViaSms
The VerifyIQ product also supports the ability to request documents directly from applicants via SMS for the purpose of completing related verifications. Authorized users can begin requesting documents by clicking the Request From Applicant button which will prompt the request screen as described in the RequestIQ section.
The SMS generated by VerifyIQ is part of Informed’s CollectIQ product offering. Your system will be notified of SMS messages sent to applicants from VerifyIQ, including the list of document types requested, via the .onDocumentsRequestedViaSms() JavaScript callback function. A JavaScript Object will be passed to the callback function containing the following information that details the verifications and document types requested from the applicant:
Callback function parameter
| Params | Values | Description |
|---|---|---|
| applicationId | String | The unique ID of the application being acted upon. |
| applicant | String | The applicant for which the verification is being acted upon. This will be either ‘PrimaryApplicant’ or ‘CoApplicant’ |
| receiverPhone | String | The SMS number to which the message was sent. |
| verifications | Array of Objects | An array of verification objects containing document types requested of the applicant |
An example is shown below:
{
"applicant": "PrimaryApplicant",
"applicationId": "Informed application_id",
"receiverPhone": "+17559022631",
"verifications": [
{
"name": "income",
"acceptableDocuments": [
{
"name": "paystub"
},
{
"name": "form_1040"
}
]
},
{
"name": "insurance",
"acceptableDocuments": [
{
"name": "insurance_id_card"
}
]
}
]
}
onLoad
This callback function can be triggered when the VerifyIQ portal is instantiated. There is no callback function parameter injected by the SDK.
Webhook Callbacks
Collected Documents
Applicant documents requested by an authorized user and collected on their behalf by the Informed platform will also be communicated to your system using the callback webhook URL designated at the time of application registration. The webhook will be called with a JSON payload as defined in our async responses documentation.
Uploaded Documents
Applicant documents uploaded by an authorized user in the VerifyIQ interface (using the Upload Documents button in the lower right corner of the screen) will also be communicated to your system using the callback webhook URL designated at the time of application registration. The webhook will be called with a JSON payload as defined in our async responses documentation.
VerifyIQ Methods
renderApplicationId
| Params | Type | Usage | Description |
|---|---|---|---|
| htmlElement | DOM Element | Required | Attaches VerifyIQ UI to element on page for rendering |
| applicationId | String | Required | Specific Application Id to render |
| applicant | VerifyIQ ENUM | Optional, default is PrimaryApplicant | Chooses which applicant to render first when pulling up an application. If the designated applicant does not exist for a given application, then the application will default to the PrimaryApplicant in the view.List of Applicant Options |
| stipulation | VerifyIQ ENUM | Optional, default is Income | Chooses which stipulation to display on render. List of Supported Verifications |
| documentModalOptions | VerifyIQ ENUM | Optional, default is UploadDocuments | Chooses which type of document modal to display, on render. List of Document Modal Options |
renderRequestIq
| Params | Type | Usage | Description |
|---|---|---|---|
| htmlElement | DOM Element | Required | Attaches RequestIQ UI to element on page for rendering |
| applicationId | String | Required | Specific Application Id to Request Documents from |
renderHitl
| Params | Type | Usage | Description |
|---|---|---|---|
| htmlElement | DOM Element | Required | Attaches HITL UI to element on page for rendering |
| applicationId | String | Required | Specific Application Id containing the Document to be edited |
| documentId | String | Required | Specific Document Id to be edited |
| frameHeight | String | Optional | height of frame in pixels, example: '1200px' |
| frameWidth | String | Optional | width of frame in pixels, example: '1200px' |
Examples
VerifyIQ.renderApplicationId
viq.renderApplicationId({
htmlElement: document.getElementById('verify-iq-root'),
applicationId: 'Informed application_id',
applicant: VerifyIQ.ApplicantTypes.CoApplicant,
stipulation: VerifyIQ.StipulationTypes.Income,
documentModalOptions: VerifyIQ.DocumentModalOptions.None
});
VerifyIQ.renderRequestIq
viq.renderRequestIq({
htmlElement: document.getElementById('request-iq-root'),
applicationId: 'Informed application_id'
});
VerifyIQ.renderHitl
viq.renderHitl({
htmlElement: document.getElementById("request-iq-root"),
applicationId: "f6ea1422-3a33-4943-b9cf-e42351072168",
documentId: '53c8b171-20dc-4362-aa8c-b0c475bfb58e',
frameHeight: '1200px',
frameWidth: '1200px'
});
Quick Start
Your IT department (and/or the vendor managing your system of record) should determine where the VerifyIQ interface should display in your existing system. The VerifyIQ interface will need a width of at least 1405px to properly display the applicants’ verifications and documents. A height of 850px is recommended. Create an HTML <div> element corresponding to the location that will be occupied by the VerifyIQ interface. We suggest allowing the <div> to expand across the entire viewable area in order to fit all main components of the VerifyIQ UI. Make sure you give the <div> a unique ID that can be referenced later. For the sake of the example below, we have assigned the <div> an ID of verify-iq-root.
Instantiate SDK
import VerifyIQ from "@informed-iq/verify-iq-sdk-ng";
const viq = new VerifyIQ({
environment: VerifyIQ.Env.Staging,
partnerName: 'your-partner-name',
onDocumentRequestedViaSms: function (stipObjects) {
console.log('onRequestDocumentsViaSms', stipObjects);
},
onLoad: function () {
console.log('iFrame is loaded');
}
});
Add root DOM element
Ensure that you have designated the appropriate container div for injecting the desired modal. For example:
<div id="verify-iq-root"></div>
or
<div id="request-iq-root"></div>
Call appropriate render method
Render Application
When the .renderApplicationId() method is invoked, the designated application will be visible in the supplied <div>. This includes any associated documents classified by our machine-learning-based classification models, any pertinent data that was extracted and the resulting verification analysis.
The .renderApplicationId() function can also optionally be invoked with a specific applicant and stipulation for the designated application. When invoked with these parameters, the application within the VerifyIQ interface will be rendered with the specified applicant and stipulation selected in the view by default.
The stipulation parameter can be any one of the stipulations documented in the table below. If a specified stipulation does not exist for the given application, the application view will default to the first available stipulation for the chosen applicant.
const verifyIQRoot = document.querySelector("#verify-iq-root");
viq.renderApplicationId({
htmlElement: verifyIQRoot,
applicationId: 'Informed application_id',
applicant: VerifyIQ.ApplicantTypes.PrimaryApplicant,
stipulation: VerifyIQ.StipulationTypes.Income,
documentModalOptions: VerifyIQ.DocumentModalOptions.RequestDocuments
});
Render RequestIQ
When the .renderRequestIq() method is invoked, Informed's RequestIQ UI will be displayed in the supplied <div>. The user will be prompted to choose the additional desired documents to be collected from the PrimaryApplicant or CoApplicant. After the user selects the desired additional documents and provides the desired phone number to receive the text message, the Request Documents SMS workflow will be initiated.
const requestIqRoot = document.querySelector("#request-iq-root");
viq.renderRequestIq({
htmlElement: requestIqRoot,
applicationId: 'Informed application_id',
});
VerifyIQ Constants
Environment
Accessible as VerifyIQ.Env.<Env>
| Env | Description |
|---|---|
| Staging | Set the SDK to run in the Staging/Testing environment |
| Production | Set the SDK to run in the Production environment |
StipulationTypes
Accessible as VerifyIQ.StipulationTypes.<StipulationType>
| StipulationType | Display Name |
|---|---|
| Income | Proof of Income |
| Residence | Proof of Residence |
| Identity | Proof of Identity |
| Insurance | Proof of Insurance |
| SSN | Proof of SSN |
ApplicantTypes
Accessible as VerifyIQ.ApplicantTypes.<ApplicantType>
| ApplicantType | Description |
|---|---|
| PrimaryApplicant | Set the applicant type to PrimaryApplicant |
| CoApplicant | Set the applicant type to CoApplicant |
DocumentModalOptions
Accessible as VerifyIQ.DocumentModalOptions.<DocumentModalOption>
| DocumentModalOption | Description |
|---|---|
| None | RequestIQ modal will not popup on application render |
| RequestDocuments | RequestIQ modal will popup on application render |
| RequestDocumentsOnlyIfNoAssociatedDocuments | RequestIQ modal will popup on application render only if there are no associated documents |
| UploadDocuments | Upload Documents modal will popup on application render |
| UploadDocumentsOnlyIfNoAssociatedDocuments | Upload Documents modal will popup only if there are no associated documents |