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

NameDescriptionExampleRequired
x-api-keyA unique API Key for the environment19YYgyZecTaSs2N0gjlq32Vh6DYes
AcceptIBV reports formatapplication/pdfYes

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.

NameDescriptionExampleType
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-22String
created_at Time when the report was generated. yyyy-MM-dd HH:mm:ss 2022-04-22 13:03:45String
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

StatusDescription
initiatedRequest has been received.
reconnect_requiredThe 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_failedFailed 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_acquiredSuccessfully 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_failedFailed to create features and scores. The EDGE platform will not take further actions.
completeReport 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 NameDescription
consumer_idA unique identifier provided by the client for each consumer
product_request_idA unique identifier of the IBV report
ibv_reportURL for retrieval of the IBV report
ibv_report_status“complete” or “generation_failed”
eventName 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.