Register application
Process Flow
The Informed income calculation service provides a streamlined approach to calculating income from consumer-permissioned documents. Please reference the sequence diagram for the full process flow.
Base URL
The table below shows the Base URL to be used with the endpoints mentioned in this guide.
Environment | Base URL |
---|---|
Staging: | https://api.staging.informediq-infra.com |
Production: | https://api.informediq.com |
Example Request
The first step in calculating income is to register the application and associated applicant with Informed. The below code block shows an example request payload for the initial call to register an application. The following sections provide details on the key nodes of the request payload.
{
"application_reference_id": "your_unique_application_id",
"application_date": "2021-05-09T09:11:38",
"applicants": {
"applicant1": {} // including applicant info is optional
},
"services": [
"extract", // optional
"income-calc"
],
"webhook": "https://your.callback.com/here"
}
Request Components
Endpoint
You will append the following endpoint to the base URL to register the initial application:
/v1/income/applications
So to put it all together, you will make a POST
call to the following URL with a request payload similar to the one shown above:
https://api.staging.informediq-infra.com/v1/income/applications
Application Level Info
This is the application level information included in the payload, where your unique Application Reference ID is defined along with the application date.
Application Level Info
{
"application_reference_id": "your_unique_application_id",
"application_date": "2021-05-09T09:11:38"
...
}
Element | Value | Description |
---|---|---|
application_reference_id | string | Required Your unique identifier for the loan application |
application_date | string | Required The date when the application was decisioned. Use either YYYY-MM-DDThh:mm:ss or YYYY-MM-DD format.Examples: 1981-12-30T12:25:00 or 1981-12-30 |
Applicant Personal Info
This section of the JSON payload is where all of the applicant's personal information is defined.
At the current time, the number of applicant blocks that can be provided under the applicants
section is limited to just applicant1
.
For the income calculation service, the applicant's personal information is optional, but even if you don't have any of the personal information, you must at least include the empty placeholder for applicant1
.
{
...
"applicants": {
"applicant1": {}
}
...
}
Applicant Personal Info
{
...
"applicants":
{
"applicant1":
{
"first_name": "Jo",
"middle_name": null,
"last_name": "Boren",
"suffix": null,
"email": "jo.boren@gmail.com",
"phone": "9196201234",
"ssn": "681129638",
"date_of_birth": "1965-12-10",
"address_info": [
{...}
]
}
}
...
}
Element | Value | Description |
---|---|---|
first_name | string | Optional Example: John |
middle_name | string | Optional Middle name or middle initial Example: Edgar or E |
last_name | string | Optional Example: Doe |
suffix | string | Optional Valid values are: I , II , III , IV , JR , SR |
string | Optional Should be a valid email address. Example: john.doe@gmail.com | |
phone | string | Optional Only US phone numbers will be supported. Example: 6508675329 or 650-867-5329 |
ssn | string | Optional Example: 666111234 . Could also be an ITIN.Can also be last 4 digits of the SSN. Example: 1234 |
date_of_birth | string | Optional Date of birth value should be in YYYY-MM-DD format.Example: 1981-12-30 |
Applicant Address Info
This section of the JSON payload is where the applicant's address information is specified. For the income calculation service, the applicant's address information is optional.
Applicant Address Info
{
...
"applicants":
{
"applicant1":
{
...
"address_info": [
{
"address":
{
"street_address": "8717 S 4th Ave",
"street_2": "Apt 120C",
"city": "Inglewood",
"state": "CA",
"zip": "90305"
},
"is_current": true,
"start_date": "2020-10-01",
"end_date": null,
"residence_type": "Rent",
"monthly_housing_cost": 1000
}
]
}
}
...
}
Element | Value | Description |
---|---|---|
street_address | string | Optional Example: 1 Example St |
street_2 | string | Optional Example: Apt 120C |
city | string | Optional Example: San Francisco |
state | string | Optional Standard two-letter abbreviation. Example: CA |
zip | string | Optional Zip codes are formatted as strings due to the fact that some zip codes start with a zero. Example: 94105 |
is_current | string | Optional If set to true this designates that the address is the current residence for the applicant. If the address is a previous residence, the value should be set to false . One of the associated address objects must have is_current set to true . |
start_date | string | Optional Date when the applicant began living at the specified address. Use YYYY-MM-DD format: 2020-10-01 |
end_date | string | Optional If not the current residence, this is date when the applicant stopped living at that address. Use YYYY-MM-DD format: 2022-10-01 |
residence_type | string | Optional Valid values are: Rent , Own , Family , Mortgage |
monthly_housing_cost | numeric | Optional Example: 1000.01 (in USD) |
Services
This portion of the documentation is specific to the income calculation service, thus the only applicable services to include in your request are the extract
and income-calc
services. Note that the extract
service is purely optional.
{
...
"services": [
"extract", // optional
"income-calc"
],
...
}
Callback Url
A webhook must be provided to receive asynchronous responses containing classified documents with extracted data and analysis. Authentication details will need to be shared with Informed to ensure secure transmission at time of setup. To further safeguard data, Informed will only POST back to your webhook using the HTTPS protocol to ensure encryption in transit. More technical details about your callback endpoint can be found at the link in this paragraph above.
Please note that you are not forced to provide a webhook URL. If you send an empty string for the value of the webhook
property, you will not receive any asynchronous, programmatic callbacks with data.
{
...
"webhook": "https://your.callback.com/here"
}
Synchronous Response
- 2xx response
- Non-2xx responses
A successful API request resulting in an application registration will return the following synchronous response to indicate that the application was submitted to Informed. Make sure that you record the application_id
value, as you will need that in subsequent steps, such as associating documents with the application or updating the applicant info.
{
"application_id": "unique-Informed-app-id",
"status": "Ready"
}
If there was an error registering the application, you will receive a non-2xx response status and an error message. For example, if you try to register an application using an application_reference_id
that you used previously, you would see a response with an error message like the one shown below.
Status | Error Message |
---|---|
400 | Application already exists This would occur if the application_reference_id used in the POST call URL already existed in the system. |
400 | Invalid services requested, please contact support for more information. Your account will be explicitly configured for the services that you are allowed to specify in your request. |
500 | Something went wrong :( Indicates some other internal failure occurred. You should contact your support representative. |
Updating Application Info
The update payload will look the same as the initial application registration request payload, but with the modified values/additions. And, you will need to send this as a PUT
call to a slightly different endpoint because the application already exists.
Note that this is a PUT
and not a PATCH
call, which means that you must resend the entire original payload but with any applicable modifications.
The one thing you cannot update with this PUT
call for an existing application is the application_reference_id
(reference). That value must stay the same for the life of the application.
You will append the following endpoint to the base URL to update the application:
/v1/income/applications/<unique-Informed-app-id>
So to put it all together, you will make a PUT
call to the following URL with your request payload:
https://api.staging.informediq-infra.com/v1/income/applications/<unique-Informed-app-id>
The synchronous response will contain the same unique-Informed-app-id
that you received in the synchronous response to the original application registration.
- 2xx response
- Non-2xx responses
{
"application_id": "unique-Informed-app-id",
"status": "Ready"
}
Status | Error Message |
---|---|
400 | Invalid services requested, please contact support for more information. Your account will be explicitly configured for the services that you are allowed to specify in your request. |
400 | Application does not exist This would occur if the application_id used in the PUT call URL did not exist in the system. |
400 | ApplicationId does not match application_reference_id You cannot change the application_reference_id once it has been associated with the Informed-supplied application_id . |
500 | Something went wrong :( Indicates some other internal failure occurred. You should contact your support representative. |