Retrieve IBV Report
When the platform has processed the request the API will return the IBV report. If the IBV report request is still in progress the API will return the current status of the process.
GET
Request
Clients may retrieve IBV reports with a GET to:
https://ninjafetch.com/api/v1/ibv/requests/{request id}
Clients may request IBV reports in PDF format. Only IBV reports in the ‘complete’ status have the PDF version available.
Header
Name | Description | Example | Required |
---|---|---|---|
x-api-key | A unique API Key for the environment | 19YYgyZecTaSs2N0gjlq32Vh6D | Yes |
Accept | IBV reports format | application/pdf | Yes |
Example
curl --location --request GET 'https://ninjafetch.com/api/v1/ibv/requests/IBV8781156D1C6256FADCEB' \
--header 'x-api-key: 3f8493dca05ffee1aa221fd93...'\
--header 'Accept: application/pdf'
Response
Retrieve IBV Report - HTTP 200
The Client will receive the IBV Report.
Name | Description | Example | Type |
---|---|---|---|
product_request_id | The request id passed to the endpoint | IBV32892389 | String |
client_id | Id of the Client | 3011 | String |
consumer_id | A unique identifier provided by the client for each consumer | CN328923498 | String |
reference_date | As of date for feature and score calculation. The date is used to evaluate recent account activities, so it has a direct impact on the result. | 2022-04-22 | String |
created_at | Time when the report was generated. yyyy-MM-dd HH:mm:ss | 2022-04-22 13:03:45 | String |
ibv_report_status | Status of the request. | complete | String |
accounts | Array of result Json objects for each account | "[ { ""provider_name"": ""PNC Bank"", ""account_name"": ""TOTAL CHECKING-1234"", ""account_type"": ""CHECKING"", ""account_number"": ""32892348943"", ""routing_number"": ""071921891"" ""owner_name"": ""John Smith"", ""balance"": 123.45, … } ]" | Json Array |
[“accounts”][x][“provider_name”] | Name of the bank | PNC | String |
[“accounts”][x] [“account_name”] | Name of the account | TOTAL CHECKING-1234 | String |
[“accounts”][x] [“account_type”] | Type of the account | CHECKING | String |
[“accounts”][x][“routing_number”] | Routing number of the account | 3071921891 | String |
[“accounts”][x][“account_number”] | Account number of the bank account | 32892348943 | String |
[“accounts”][x] [“owner_name”] | Name of the account owner | John Smith | String |
[“accounts”][x][“balance”] | Current balance of the account | 123.45 | String |
[“accounts”][x][“items”] | List of features and scores | "[ { ""item_code"": ""ibv_validate_metrics"", ""item_name"": ""Validate 2"", ""item_version"": ""3.0.1"", ""data"": { ""ne_income_feature_1"": ..., ... # multiple features }, …more items ]" | Json Array |
[“accounts”][x][“items”][item_name] | Name of the subscribed EDGE product | Validate 2 | String |
[“accounts”][x][“items”][item_code] | Code of the subscribed EDGE product | ibv_validate_metrics | String |
[“accounts”][x][“items”][item_version] | Version of the subscribed EDGE product | 3.0.1 | String |
[“accounts”][x][“items”][data] | List of features or scores | "{ ""ninjaedge_income_feature_31"": true, ""ninjaedge_income_feature_32"": true, ""ninjaedge_historical_feature_1"": true, ""ninjaedge_historical_feature_2"": false, ""ninjaedge_balance_feature_1"": 230.64, … } { ""ninja_score"": 358, ""score_factors"": [""Unable to verify income"", ""Limited credit experience""], ""score_factor_codes"": [""002"", ""008""] …… }" | JSON Object |
Report Status
Status | Description |
---|---|
initiated | Request has been received. |
reconnect_required | The bank connection did not work due to incorrect credentials or incomplete MFA process. The EDGE platform will not take further actions until the consumer reconnects the bank. |
ibv_data_acquire_failed | Failed to pull data from the data aggregator. This may happen after the user successfully connects the bank account. The EDGE platform will not take further actions. |
ibv_data_acquired | Successfully downloaded the IBV data. The EDGE platform is generating features and scores. This is a temporary state. The status will eventually change to “complete” or “generation_failed”. |
generation_failed | Failed to create features and scores. The EDGE platform will not take further actions. |
complete | Report was created successfully. The EDGE platform will not take further actions. |
Example
{
"product_request_id": "IBV32892389",
"client_id": "3011",
"consumer_id": "CN328923498",
"reference_date": "2021-08-15",
"created_at": "2021-09-01 15:21:53",
"ibv_report_status": "complete",
"accounts": [
{
"provider_name": "PNC Bank",
"account_name": "TOTAL CHECKING-1234",
"account_type": "CHECKING",
"routing_number": "071921891",
"account_number": "32892348943",
"owner_name": "John Smith",
"balance": 123.45,
... # other custom fields
"items":[
{
"item_code": "ibv_validate_metrics",
"item_name": "Validate 2",
"item_version": "3.0.1",
"data": {
"ne_income_feature_1": ...,
... # multiple features
},
... # multiple items
},
]
},
... # multiple accounts
]
}
}
IBV Report Pending - HTTP 202
The Client will receive the processing status when the requested IBV report is not yet ready.
Example:
{
"product_request_id": "IBV3B2BB0C30B0FB770E157",
"ibv_report": "https://ninjafetch.com/api/v1/ibv/requests/IBV3B2BB0C30B0FB770E157",
"ibv_report_status": "initiated",
"message": "Check for results later",
"ibv_connection_link": "https://ninjafetch.com/connect/438da2e3b1b321506c3cd4cbb4…"
}
Handling Timeouts
When the Client recognizes a timeout it may make any number of retry attempts, which should eventually lead to one of the following responses:
- IBV Report - HTTP 200
- IBV Report Pending - HTTP 202
Webhooks
The EDGE platform can initiate a Webhooks callback when the requested report is generated and ready for retrieval, or when the report generation fails. Two events, “report_generated” and “report_generation_failed” are supported. The response payload includes the following fields:
Field Name | Description |
---|---|
consumer_id | A unique identifier provided by the client for each consumer |
product_request_id | A unique identifier of the IBV report |
ibv_report | URL for retrieval of the IBV report |
ibv_report_status | “complete” or “generation_failed” |
event | Name of the system event that triggered the Webhooks. Supported events are “report_generated” and “report_generation_failed” |
Example
{
"consumer_id": "12345",
"product_request_id": "IBVCE90DDCCED4A0F0E5217",
"ibv_report": "https://ninjafetch.com/api/v1/ibv/requests/IBVCE90DDCCED4A0F0E5217",
"ibv_report_status": "complete",
"event": "report_generated"
}
{
"consumer_id": "67890",
"product_request_id": "IBV2529C60A40F2B651639B",
"ibv_report": "https://ninjafetch.com/api/v1/ibv/requests/IBV2529C60A40F2B651639B",
"ibv_report_status": "generation_failed",
"event": "report_generation_failed"
}
Please provide your Webhooks endpoint to the EDGE Customer Success Team if you would like to use this feature.
Updated about 1 month ago