{"info":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","description":"<html><head></head><body><p>This API documentation is specific to being used as a companion with our web-app and not standalone. This documentation covers the integration process of creating batches using API's to the web-app version of Prudent AI and downloading the excel file of analysis generated. Webhook events are also available covering the batch status changes.</p>\n<p>Post completion of batch processing, all functional analysis needs to be performed on the web-app only.</p>\n<h2 id=\"api-usage-limits\">API Usage Limits:</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Parameter</strong></th>\n<th><strong>Limit</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Number of statements that can be uploaded</td>\n<td>Min-1; Max-60</td>\n</tr>\n<tr>\n<td>Number of requests per second</td>\n<td>5 request per second</td>\n</tr>\n<tr>\n<td>Timeout</td>\n<td>270 seconds</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"authentication\">Authentication</h1>\n<p>Send <code>client_id</code> and <code>client_secret</code> with grant_type <code>client_credentials</code> to Authentication service to obtain <code>access_token</code> for accessing APIs.</p>\n<ul>\n<li><p>Access Token is valid for three hours and is required on all API Requests.</p>\n</li>\n<li><p>As a best practice, use a single token for all calls. Assign a timestamp for each token, and then check the current timestamp before making any calls. If the token is greater than 150 minutes, generate a new one.</p>\n</li>\n<li><p>After five failed attempts to authenticate, your account will be locked. Contact <a href=\"https://mailto:support@prudent.ai\">support@prudent.ai</a> to get help resetting your account.</p>\n</li>\n</ul>\n<h1 id=\"uploading-statements\">Uploading Statements</h1>\n<p>Users can upload the bank statements as individual PDF for each month or as one combined PDF file having all the months’ statements. Processor performs the QC of the bank statement based on individual month totals represented in the statement.</p>\n<p>To perform the QC for the combined statements, the processor splits the combined PDF file into individual months’ statements, as a new PDF. The filename of the new PDF consists of the original file name with the page numbers appended (for ex. “Filename_#Batch ID_page_1_4.pdf”).</p>\n<p>The results/status, including the transaction data are also updated for each of the individual files split by the processor.</p>\n<p>Processing Plaid Statements</p>\n<p>In addition to bank statements, users can also upload Plaid reports for processing. In case of a Plaid PDF report, the statements can be uploaded using the \"Create a Batch\" endpoint and follow the steps mentioned in \"Quick Start\" section.</p>\n<p>In case the Plaid report is available as a JSON, the reports need to be uploaded using the \"Plaid Json\" endpoint. No further action is required and once processing is complete, the results can be accessed.</p>\n<p>Note: A batch with Plaid reports cannot be updated along with bank statements. Updates, if required on the batch can only be added as Plaid reports.</p>\n<h1 id=\"quick-start\">Quick Start</h1>\n<p>Prudent AI also provides a Python snippet for ease of usage - you can obtain the python script during the onboarding process. Which covers below steps.</p>\n<p><strong>Step 1:</strong> Get API access credentials by contacting <a href=\"https://mailto:contactus@prudent.ai\">contactus@prudent.ai</a>.</p>\n<ul>\n<li>You'll be provided with <code>client_id</code> and <code>client_secret</code> along with <code>Prudent-API-Key</code></li>\n</ul>\n<p><strong>Step 2:</strong> Get Access Token by making request to Get Token endpoint using credentials acquired to access every other APIs.</p>\n<p><strong>Step 3:</strong> Create a Batch specifying Batch name and file names that will be uploaded to this batch.</p>\n<p>In case of Plaid Json reports, use the \"Plaid Json\" endpoint. Step 4 and Step 5 can be skipped.</p>\n<p><strong>Step 4:</strong> Upload files 1 by 1 using Upload File endpoint directly to s3 bucket based on credentials obtained from create batch request.</p>\n<p><strong>Step 5:</strong> After uploading required files for the batch initiate processing by invoking Process Batch endpoint</p>\n<p><strong>Step 6:</strong> Check the status of the Batch by invoking Get Quick Analysis endpoint</p>\n<h1 id=\"reviewing-the-results\">Reviewing the Results</h1>\n<p>Once all the files finish processing, the status of each file is updated, and the results are generated.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TO_UPLOAD</td>\n<td>Files are yet to be uploaded</td>\n</tr>\n<tr>\n<td>PROCESSED</td>\n<td>Batch has completed processing and results are available</td>\n</tr>\n<tr>\n<td>PROCESSING_MANUALLY</td>\n<td>Batch is currently being processed manually</td>\n</tr>\n<tr>\n<td>FAILED</td>\n<td>All files in the batch could not be processed (corrupt file, 0 kb files, not a valid bank statement, not uploaded etc)</td>\n</tr>\n</tbody>\n</table>\n</div><p>The analysis excel file will be generated only for batches in the PROCESSED status.</p>\n<p>The output of this endpoint is intended for manual review, as opposed to automated consumption by your application.</p>\n<p><strong>Getting the spreadsheet output</strong></p>\n<p>The analysis can also be downloaded in a spreadsheet format using the Get Analysis Excel File.</p>\n<p><strong>Request Error Codes</strong></p>\n<ul>\n<li><p>404 - Content or URL not found</p>\n</li>\n<li><p>422 - If request has unsupported or incorrect params</p>\n</li>\n<li><p>401 - Authentication Failure</p>\n</li>\n<li><p>403 - No access to particular resource with current privileges</p>\n</li>\n<li><p>500 - Unexpected error at server side.</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Authentication","slug":"authentication"},{"content":"Uploading Statements","slug":"uploading-statements"},{"content":"Quick Start","slug":"quick-start"},{"content":"Reviewing the Results","slug":"reviewing-the-results"}],"owner":"23861985","collectionId":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","publishedId":"2sA3BuXUnC","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-04-29T12:34:28.000Z"},"item":[{"name":"Auth","item":[{"name":"Get Access Token","event":[{"listen":"test","script":{"exec":["var res = pm.response.json();","pm.environment.set('access_token', res.data.access_token);"],"type":"text/javascript","packages":{},"id":"3ac5ebe4-b972-46bd-be43-147040b37ab7"}}],"id":"6989b685-9a59-4c3a-a0dd-bc994055afcd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"client_id","value":"{{client_id}}","type":"text"},{"key":"client_secret","value":"{{client_secret}}","type":"text"},{"key":"grant_type","value":"client_credentials","type":"text"}]},"url":"{{BASE_URL}}/auth/token","auth":{"type":"noauth","isInherited":true,"source":{"_postman_id":"36889b93-f11f-4d6c-b452-119fd8addd47","id":"36889b93-f11f-4d6c-b452-119fd8addd47","name":"Auth","type":"folder"}},"urlObject":{"path":["auth","token"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6989b685-9a59-4c3a-a0dd-bc994055afcd"}],"id":"36889b93-f11f-4d6c-b452-119fd8addd47","description":"<p>Send <code>client_id</code> and <code>client_secret</code> with grant_type <code>client_credentials</code> to Authentication service to obtain <code>access_token</code> for accessing APIs.</p>\n<ul>\n<li><p>Access Token is valid for three hours and is required on all API Requests.</p>\n</li>\n<li><p>As a best practice, use a single token for all calls. Assign a timestamp for each token, and then check the current timestamp before making any calls. If the token is greater than 150 minutes, generate a new one.</p>\n</li>\n<li><p>After five failed attempts to authenticate, your account will be locked. Contact <a href=\"https://mailto:support@prudent.ai\">support@prudent.ai</a> to get help resetting your account.</p>\n</li>\n</ul>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"3c2ea219-255d-43c0-a09a-33364f1d6e4f"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"eefceae3-65c9-4d27-82e9-c8676838b49b"}}],"_postman_id":"36889b93-f11f-4d6c-b452-119fd8addd47"},{"name":"Batch","item":[{"name":"Create Batch","id":"f827ed5f-058b-45ca-81df-c4d5163312dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n            \"name\": \"Test Batch\",\n            \"file_count\": 6,\n            \"income_period\": \"MONTHS_12\", // [\"MONTHS_12\", \"MONTHS_24\"]\n            \"files\": [\"file1.pdf\",\"file2.pdf\",\"file3.pdf\",\"file4.pdf\",\"file5.pdf\",\"file6.pdf\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/batch","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["batch"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"7b52192d-467f-4d2c-937a-7d19803a4d90","name":"Success Creating Batch","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n            \"name\": \"Test Batch\",\n            \"file_count\": 6,\n            \"income_period\": \"MONTHS_12\",\n            \"files\": [\"file1.pdf\",\"file2.pdf\",\"file3.pdf\",\"file4.pdf\",\"file5.pdf\",\"file6.pdf\"]\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/batch"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 12:19:34 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=q0i8pjab7bfxedk7sr6vm2qbik2jv45v; expires=Mon, 08 Apr 2024 12:34:34 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"871234d7c88d7f9b-MAA"},{"key":"Content-Encoding","value":"gzip"},{"key":"Cf-Team","value":"1f5f3f5ad600007f9b6dcbb400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"data\": {\n            \"id\": 1662,\n            \"status\": \"TO_UPLOAD\",\n            \"name\": \"Test Batch\",\n            \"created_at\": \"2024-04-09T15:51:20.796077Z\",\n            \"files\": [\n                {\n                    \"name\": \"file1.pdf\",\n                    \"uri\": {\n                        \"url\": \"https://bucket-name.s3.amazonaws.com/\",\n                        \"fields\": {\n                            \"key\": \"useruploads/675922f1-33b5-497f-88a4-f7628879fe8c/1564/1712578774.351901/file1.pdf\",\n                            \"AWSAccessKeyId\": \"**********\",\n                            \"x-amz-security-token\": \"IQoJb*******************\",\n                            \"policy\": \"eyJleHBpcmF0aW9uIjogIj***************\",\n                            \"signature\": \"h89f2epYmTLq4***********\"\n                        }\n                    }\n                },\n                {\n                    \"file*.pdf\": \"....\"\n                }\n            ]\n        },\n        \"success\": true\n    }\n}"}],"_postman_id":"f827ed5f-058b-45ca-81df-c4d5163312dd"},{"name":"Plaid JSON","id":"2372b987-8626-4d76-88b2-4a2de35dabb0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"<batch_name>\",\n    \"external_id\": \"1234567\",\n    \"income_period\": \"MONTHS_12\",\n    \"direct_source_data\": {\n        \"provider_name\": \"plaid\",\n        \"data\": {\n            \"report\": {} // full plaid report\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/batch/process-direct-statement","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["batch","process-direct-statement"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"141c493e-8393-4205-885e-1248d35f48ef","name":"Plaid JSON","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"<batch_name>\",\n    \"external_id\": \"1234567\",\n    \"income_period\": \"MONTHS_12\",\n    \"direct_source_data\": {\n        \"provider_name\": \"plaid\",\n        \"data\": {\n            \"report\": {} // full plaid report\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/batch/process-direct-statement"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"Batch has been queued for processing\",\n    \"success\": true\n}"}],"_postman_id":"2372b987-8626-4d76-88b2-4a2de35dabb0"},{"name":"Upload Files to Batch","id":"fb21e9fd-e2da-400b-abe1-007d0d20ecbe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"key","value":"<file-key-returned-in-response>","type":"text"},{"key":"AWSAccessKeyId","value":"<aws-key-returned-in-response>","type":"text"},{"key":"x-amz-security-token","value":"<security-token-returned-in-response>","type":"text"},{"key":"policy","value":"<policy-returned-in-response>","type":"text"},{"key":"signature","value":"<signature-returned-in-response>","type":"text"},{"key":"file","description":"<p>Required</p>\n","type":"file","value":null}]},"url":"https://bucket-url.s3.amazonaws.com/","description":"<p>URL for upload will be available in the create batch API response.</p>\n<p><strong>Note:</strong><br />Only PDF files are supported. Better results are achieved if the PDF is of high quality and relatively less skew or smudged.</p>\n","urlObject":{"protocol":"https","path":[""],"host":["bucket-url","s3","amazonaws","com"],"query":[],"variable":[]}},"response":[{"id":"ef2ffec3-4c05-49cd-bdec-f34bdb80cc2a","name":"Successfully Uploaded Files for Batch","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"key","value":"useruploads/file1.pdf","type":"text"},{"key":"AWSAccessKeyId","value":"***********","type":"text"},{"key":"x-amz-security-token","value":"**********","type":"text"},{"key":"policy","value":"***********","type":"text"},{"key":"signature","value":"bRxPigaKpPWcKEQb5g4sl27ewcI=","type":"text"},{"key":"file","type":"file","src":[]}]},"url":"https://bucket-name.amazonaws.com/"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"1065"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"Allow","value":"OPTIONS, POST"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"fb21e9fd-e2da-400b-abe1-007d0d20ecbe"},{"name":"Process a Batch","id":"b0c4be2e-b5e2-492b-a85f-3c796e148a0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{BASE_URL}}/batch/:batchId/process","description":"<p>This API is to be used to trigger processing of the Batch</p>\n<p>By passing the <code>batch_id</code> we initiate the queue to start processing the batch immediately. If not invoked immediately, it gets queued in 10min intervals.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["batch",":batchId","process"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"id":"ad914675-36cb-460b-b11e-11ffbdf74427","type":"any","value":"","key":"batchId"}]}},"response":[{"id":"9cdafe0b-95c9-4154-a032-7ebb0919cde8","name":"Process a Batch -Success","originalRequest":{"method":"POST","header":[],"url":{"raw":"{{BASE_URL}}/batch/:batchId/process","host":["{{BASE_URL}}"],"path":["batch",":batchId","process"],"variable":[{"key":"batchId","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"Batch has been queued for processing\",\n    \"success\": true\n}"},{"id":"5cb2c2d6-2227-47c0-a85e-8265fb9d42db","name":"Process a Batch - Error","originalRequest":{"method":"POST","header":[{"key":"Prudent-API-Key","value":"{{api_key}}","type":"text"}],"url":{"raw":"{{BASE_URL}}/batch/:batchId/process","host":["{{BASE_URL}}"],"path":["batch",":batchId","process"],"variable":[{"key":"batchId","value":"1"}]}},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 21 Oct 2022 18:56:04 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"107"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"Allow","value":"OPTIONS, POST"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Set-Cookie","value":"sessionid=os6dmkofvlja3ish1qtgzsmydu7c92ag; expires=Fri, 04 Nov 2022 18:56:04 GMT; HttpOnly; Max-Age=1209600; Path=/; SameSite=Lax"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=FbznvDXNRlfoeWDILlhcbDgC0Fhz%2BdrW4hxnTBcd5mbmHP8ms0ECnr27EMnC7B4%2BVlu8b2Vtx1uSsJQdjYKjfRkuVjDAeiFlUfpCnWzXoVqlyiCTuaBYqJV5UHFPH%2FXiNgfGpPS3MZI%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"75dc360bfc908519-BOM"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [],\n    \"errors\": [\n        \"No files have been uploaded for batch 'Batch Name - Borrower Name'\"\n    ],\n    \"success\": false\n}"}],"_postman_id":"b0c4be2e-b5e2-492b-a85f-3c796e148a0f"},{"name":"Get Analysis Excel File","id":"75af55ce-bb32-48ae-af2f-6ba727bc55e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{BASE_URL}}/batch/:batchId/analysis/download","description":"<p>This API provides the excel spreadsheet generated for the loan.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["batch",":batchId","analysis","download"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"id":"2cb92b42-3af9-4129-8d38-6710d554cf0b","type":"any","value":"1","key":"batchId"}]}},"response":[{"id":"fb9c1686-5cc2-45e0-8fad-300e2fb7ee7c","name":"Get Analysis Excel File","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{BASE_URL}}/batch/:batchId/analysis/download","host":["{{BASE_URL}}"],"path":["batch",":batchId","analysis","download"],"variable":[{"key":"batchId","value":"1556"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 12:17:14 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=q0i8pjab7bfxedk7sr6vm2qbik2jv45v; expires=Mon, 08 Apr 2024 12:32:14 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"87123164ae587f9b-MAA"},{"key":"Content-Encoding","value":"gzip"},{"key":"Cf-Team","value":"1f5f3d32e300007f9b6db07400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"uri\": \"https://nqm-staging.s3.amazonaws.com/useruploads/.......\",\n        \"name\": \"Demo.xlsx\"\n    },\n    \"success\": true\n}"}],"_postman_id":"75af55ce-bb32-48ae-af2f-6ba727bc55e9"},{"name":"Get Quick Analysis","id":"e689c2c1-d2da-4059-9aab-f71079e1019a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{BASE_URL}}/batch/:batchId/quick-analysis","description":"<p>This API provides the a quick summary of the loan</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["batch",":batchId","quick-analysis"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"type":"any","value":"1","key":"batchId"}]}},"response":[{"id":"59b2e167-3edd-42b4-83ac-5f50f6d744dd","name":"Get Quick Analysis","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{BASE_URL}}/batch/:batchId/analysis/quick_analysis","host":["{{BASE_URL}}"],"path":["batch",":batchId","analysis","quick_analysis"],"variable":[{"key":"batchId","value":"1556"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 12:17:14 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=q0i8pjab7bfxedk7sr6vm2qbik2jv45v; expires=Mon, 08 Apr 2024 12:32:14 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"87123164ae587f9b-MAA"},{"key":"Content-Encoding","value":"gzip"},{"key":"Cf-Team","value":"1f5f3d32e300007f9b6db07400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"monthly_income\": 10747.72,\n        \"qualified_income\": 5373.86,\n        \"account_numbers\": \"#CH_x956944149\",\n        \"period_start_date\": \"5-30-2019\",\n        \"period_end_date\": \"5-29-2019\",\n        \"count_of_months\": 2,\n        \"missing_month\": [\n            \"Jan-2022\",\n            \"Feb-2022\"\n        ],\n        \"failures\": [\n            {\n                \"filename\": \"filename.pdf\",\n                \"error_code\": \"MISSING_PAGES\"\n            }\n        ],\n        \"accounts\": [\n            {\n                \"account_number\": \"acc-1\",\n                \"account_class\": \"Business\"\n            }\n        ]\n    },\n    \"success\": true\n}"}],"_postman_id":"e689c2c1-d2da-4059-9aab-f71079e1019a"}],"id":"42fe5121-0ea8-417b-9ab0-af7abe01c9d8","_postman_id":"42fe5121-0ea8-417b-9ab0-af7abe01c9d8","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}}},{"name":"Webhook","item":[{"name":"Register webhook","id":"e25af83e-58b7-47d7-bdf6-49b603cce18d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://domain-name.com/ddc72472-b829-48d4-9b04-85e383bee636\", // A Valid Url accepting POST requests\n    \"secret\": \"wbsecTzllWqMvkZe80iY2nqiHR49qzcGs9ZLE\", // Min length 32 max lenght 128\n    \"topics\": [\n        \"Batch::PROCESSED\",\n        \"Batch::FAILED\",\n        \"Batch::PROCESSING_MANUALLY\"\n    ] // one or many of the topics can be subscribed, recommended subscription to all\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/notifications/webhook","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["notifications","webhook"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"8c8a830c-fd91-422a-b800-566980278ba9","name":"Registration success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://domain-name.com/ddc72472-b829-48d4-9b04-85e383bee636\",\n    \"secret\": \"wbsecTzllWqMvkZe80iY2nqiHR49qzcGs9ZLE\",\n    \"topics\": [\n        \"Batch::PROCESSED\",\n        \"Batch::FAILED\",\n        \"Batch::PROCESSING_MANUALLY\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/notifications/webhook"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 10:27:39 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=q1qxk3bkeok040c9d0xfr8icf57neykm; expires=Mon, 08 Apr 2024 10:42:39 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"871190e5fccf7f9b-MAA"},{"key":"Content-Encoding","value":"gzip"},{"key":"Cf-Team","value":"1f5ed8e3b200007f9b66a28400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"url\": \"https://domain-name.com/ddc72472-b829-48d4-9b04-85e383bee636\",\n        \"active\": true,\n        \"uuid\": \"wbsecTzllWqMvkZe80iY2nqiHR49qzcGs9ZLE\",\n        \"topics\": [\n            \"Batch::PROCESSING_MANUALLY\",\n            \"Batch::FAILED\",\n            \"Batch::PROCESSED\"\n        ],\n        \"created\": \"2024-02-08T10:27:39.162223Z\",\n        \"modified\": \"2024-02-08T10:27:39.162244Z\"\n    },\n    \"success\": true\n}"},{"id":"aa3cf9d2-075d-4a80-8c09-07773a693b80","name":"Missing required info","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://domain-name.com/ddc72472-b829-48d4-9b04-85e383bee636\",\n    \"secret\": \"wbsecTzllWqMvkZe80iY2nqiHR49qzcGs9ZLE\",\n    \"topics\": []\n}","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/notifications/webhook"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 11:18:27 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"68"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=9cm8q29b62xozj9fxycheiyh7kzczk0r; expires=Mon, 08 Apr 2024 11:33:27 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"8711db539fd07f9b-MAA"},{"key":"Cf-Team","value":"1f5f07683700007f9b6a7ad400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [],\n    \"errors\": [\n        \"Required attributes missing\"\n    ],\n    \"success\": false\n}"}],"_postman_id":"e25af83e-58b7-47d7-bdf6-49b603cce18d"},{"name":"List webhooks","id":"fea962e5-44d2-45d3-9bfd-91bf5b0350ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/notifications/webhook","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["notifications","webhook"],"host":["{{BASE_URL}}"],"query":[],"variable":[]}},"response":[{"id":"5e052606-073a-4794-a153-5140c68ddff1","name":"Webhooks List","originalRequest":{"method":"GET","header":[],"url":"{{BASE_URL}}/notifications/webhook"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 10:24:52 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=q1qxk3bkeok040c9d0xfr8icf57neykm; expires=Mon, 08 Apr 2024 10:39:52 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"87118cd12ddd7f9b-MAA"},{"key":"Content-Encoding","value":"gzip"},{"key":"Cf-Team","value":"1f5ed656b800007f9b66632400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n            {\n            \"url\": \"https://domain-name.com/ddc72472-b829-48d4-9b04-85e383bee636\",\n            \"active\": true,\n            \"uuid\": \"wbsecTzllWqMvkZe80iY2nqiHR49qzcGs9ZLE\",\n            \"topics\": [\n                \"Batch::PROCESSING_MANUALLY\",\n                \"Batch::FAILED\",\n                \"Batch::PROCESSED\"\n            ],\n            \"created\": \"2024-02-08T10:27:39.162223Z\",\n            \"modified\": \"2024-02-08T10:27:39.162244Z\"\n        }\n    ],\n    \"success\": true\n}"}],"_postman_id":"fea962e5-44d2-45d3-9bfd-91bf5b0350ed"},{"name":"Webhook detail","id":"ba19b829-912c-47be-b810-817badbfb062","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/notifications/webhook/:webhookId","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["notifications","webhook",":webhookId"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"id":"f85176b1-9542-466a-b255-1ca77c8c4eba","type":"any","value":"","key":"webhookId"}]}},"response":[{"id":"ccce03cf-25fa-4c0a-b98f-27f15abc4eee","name":"webhook detail","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{BASE_URL}}/notifications/webhook/:webhookId","host":["{{BASE_URL}}"],"path":["notifications","webhook",":webhookId"],"variable":[{"key":"webhookId","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 10:25:14 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, DELETE, HEAD, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=q1qxk3bkeok040c9d0xfr8icf57neykm; expires=Mon, 08 Apr 2024 10:40:14 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"87118d60995e7f9b-MAA"},{"key":"Content-Encoding","value":"gzip"},{"key":"Cf-Team","value":"1f5ed6b06100007f9b66681400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"url\": \"https://domain-name.com/ddc72472-b829-48d4-9b04-85e383bee636\",\n        \"active\": true,\n        \"uuid\": \"wbsecTzllWqMvkZe80iY2nqiHR49qzcGs9ZLE\",\n        \"topics\": [\n            \"Batch::PROCESSING_MANUALLY\",\n            \"Batch::FAILED\",\n            \"Batch::PROCESSED\"\n        ],\n        \"created\": \"2024-02-08T10:27:39.162223Z\",\n        \"modified\": \"2024-02-08T10:27:39.162244Z\"\n    },\n    \"success\": true\n}"}],"_postman_id":"ba19b829-912c-47be-b810-817badbfb062"},{"name":"Delete webhook","id":"21fa5f59-1f0d-45a1-9691-a678c3542cf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{BASE_URL}}/notifications/webhook/:webhookId","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}},"urlObject":{"path":["notifications","webhook",":webhookId"],"host":["{{BASE_URL}}"],"query":[],"variable":[{"id":"70eaca5e-aee0-419e-9070-0b96f71b6df7","type":"any","value":"","key":"webhookId"}]}},"response":[{"id":"714f2e17-d490-445f-89d0-7407957d7982","name":"delete webhook","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{BASE_URL}}/notifications/webhook/:webhookId","host":["{{BASE_URL}}"],"path":["notifications","webhook",":webhookId"],"variable":[{"key":"webhookId","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 08 Apr 2024 10:25:22 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"allow","value":"GET, DELETE, HEAD, OPTIONS"},{"key":"referrer-policy","value":"same-origin"},{"key":"set-cookie","value":"sessionid=q1qxk3bkeok040c9d0xfr8icf57neykm; expires=Mon, 08 Apr 2024 10:40:22 GMT; HttpOnly; Max-Age=900; Path=/; SameSite=Lax; Secure"},{"key":"strict-transport-security","value":"max-age=900; includeSubDomains; preload"},{"key":"vary","value":"Accept, Authorization, Origin, Cookie"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-frame-options","value":"DENY"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"87118d916fe57f9b-MAA"},{"key":"Content-Encoding","value":"gzip"},{"key":"Cf-Team","value":"1f5ed6ce5400007f9b666a0400000001"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        \"Webhook removed successfully\"\n    ],\n    \"success\": true\n}"}],"_postman_id":"21fa5f59-1f0d-45a1-9691-a678c3542cf3"}],"id":"afe3a721-c1de-4d52-b588-b8d026a107b8","description":"<p>Events Supported currently are</p>\n<p><em>Batch::PROCESSED</em><br /><em>Batch::FAILED</em><br /><em>Batch::PROCESSING_MANUALLY</em></p>\n<blockquote>\n<p>Your Webhook endpoint ought to reply to incoming notifications with a status of 200 OK to signify its proper functioning. </p>\n</blockquote>\n<p>To ensure receipt of Webhook notifications when Firewall rules enforce a strict policy, it is necessary to whitelist the provided IPs in onboarding doc.</p>\n<p>Sample Webhook data:</p>\n<p>Batch Processed Successfully:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"topic\": \"Batch::PROCESSED\",\n  \"object\": {\n    \"id\": 125,\n    \"name\": \"Demo\",\n    \"status\": \"PROCESSED\",\n    \"created_at\": \"2024-02-09T15:43:52.293732Z\"\n  },\n  \"object_type\": \"Batch:Status::Update\",\n  \"webhook_uuid\": \"ad95bdc8-f730-41c5-ae19-dee8dd9c265f\"\n}\n\n</code></pre>\n<p>We recommend calling results API after receiving this event with a delay of 1minute</p>\n<p>All subscribed Topics will have same attributes <code>id</code>, <code>name</code>, <code>status</code>, and <code>created_at</code></p>\n<p>eg.2: Batch failed</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"topic\": \"Batch::FAILED\",\n  \"object\": {\n    \"id\": 121,\n    \"name\": \"Demo\",\n    \"status\": \"FAILED\",\n    \"created_at\": \"2024-01-09T15:43:52.293732Z\"\n  },\n  \"object_type\": \"Batch:Status::Update\",\n  \"webhook_uuid\": \"ad95bdc8-f730-41c5-ae19-dee8dd9c265f\"\n}\n\n</code></pre>\n<h4 id=\"security\">Security:</h4>\n<p>The following headers are send along with the POST request to ensure security and integrity</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>x-prudent-webhook-uuid</td>\n<td>Webhooks UUID</td>\n</tr>\n<tr>\n<td>x-prudent-webhook-signature</td>\n<td>SHA256 Encoded signature  <br />  <br /><strong>format</strong>  <br />{timestamp}:{json_enocoded_body_string}</td>\n</tr>\n<tr>\n<td>x-prudent-webhook-request-timestamp</td>\n<td>Webhook request Timestamp</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"afe3a721-c1de-4d52-b588-b8d026a107b8","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]},"isInherited":true,"source":{"_postman_id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","id":"b5b93de9-4cf8-4a6b-90f8-39d369c5dc04","name":"Prudent AI API Documentation","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{access_token}}"}]}},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"c76e2703-bfaa-40a1-b817-dea8f5f09b4c"}},{"listen":"test","script":{"type":"text/javascript","packages":{},"exec":[""],"id":"5981164c-66d0-4524-9dcd-fcbc2f1f6df8"}}]}