{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"6797c328-e461-464a-951e-35596f09ddca","name":"IDfy's API suite","description":"<h2>Getting Started</h2>\n\n<h3>General Introduction</h3>\n\nIDfy’s API suite can be used as granular pieces that help you build a seamless, quick, and scalable KYC and onboarding process, irrespective of your industry or business.\n\nThis page will help you understand:\n\n- How to set up your account\n    \n- The range of IDfy API solutions\n    \n- Authentication of your APIs\n    \n- Some key terms related to each of the APIs\n    \n- Documentation of each API\n    \n\n<h4>Setting up your account</h4>\n\nTo run our APIs, you need an api-key and an account-id. If you don’t have these yet, please get in touch with us at [eve.support@idfy.com](https://mailto:eve.support@idfy.com) for us to create an account for you.\n\n<h4>The range of IDfy APIs</h4>\n\nIDfy offers a wide range of APIs that cover all aspects of your onboarding and authentication journeys. IDfy API solutions are:\n\n<ol><li><div>Document Solutions</div></li><p></p><ol><li><div>Extraction (OCR): Allows you to algorithmically extract text from a Document</div></li><li><div>Document Recognition: Allows you to recognize the type of document being processed</div></li><li><div>Document Masking: Allows you to mask specific elements in a document</div></li></ol><li><div>Verification Solutions</div></li><p><br>Allows you to verify the legitimacy of an identity by verifying it with the originating source itself (for example, against a government database)<br></p><li><div>User Authentication</div></li><p><br>Allows you to perform a set of checks to verify the authenticity of an end-user</p><ol><li><div>Name Comparison solutions: Compares two names and returns a match score</div></li><li><div>Face Recognition: Advanced AI-Based face recognition / checks</div></li><ol><li><div>Face liveness: Allows you to check the liveness of a face</div></li><li><div>Face compare: Compares two faces and returns a match score</div></li></ol></ol><li><div>Advanced Solutions</div></li><p><br>Allows you to perform Advanced AI / ML based checks to verify a user<br></p><li><div>Video Activity Check</div></li><p><br>Allows you to use IDfy’s video based solutions</p></ol>\n\n<h4>Authentication</h4>\n\nEvery request must contain headers identifying the API account as specified in the Authentication section. An API account is an entity used for authentication, authorization and tracking usage of our APIs. It consists of an account-id and api-key.\n\n<h5>How to get your credentials?</h5>\n\nYou can start using our APIs in 3 simple steps:\n\n<ol><li><div>Get your api credentials from us by reaching out to shivani@idfy.com</div></li><li><div>Click the “Run in Postman” button on top right</div></li><li><div>Add your API key and account ID in the variables section</div></li></ol>\n\nYou’re all set!\n\n<h4>Key terms you should know</h4>\n\nThe APIs are granular in nature, and can fit in all types of workflows. Our APIs are modelled around the concept of tasks. Each capability is a task type. Your servers create tasks by hitting our Tasks Endpoints over HTTP. These tasks are bucketed across various sections like:\n\n<h5>Task ID and Group ID</h5>\n\nIDs which you can assign to identify your tasks. We recommend setting a unique Task ID (preferably UUID v4) for every task. You could use group ID to group your tasks as per your convenience (generally used to group tasks for a profile).\n\n<h5>Request ID</h5>\n\nA unique ID which we assign to every task we receive from you. We recommend that you store this request ID\n\n<h5>Webhooks</h5>\n\nWe use Webhooks to send the output of our APIs to an endpoint on your server. Each webhook refers to only one task and is called when a task gets completed, either successfully or with an error. Webhooks can be configured by emailing us at [eve.support@idfy.com](https://mailto:eve.support@idfy.com).\n\n<h5>Document Sharing Mechanisms Our APIs accept either -</h5>\n\nURLs of documents, or Documents as base64 encoded strings (Recommended size is less than 1 MB). You could also send us URLs of documents hosted on your servers. These URLs need to be accessible to our servers, but can be protected against unauthorised access using some or all of the mechanisms below.\n\n<h5>There are several ways to protect URLs of images hosted on your servers -</h5>\n\nUse URLs which expire after a brief period of time Whitelist the IPs of our servers which fetch documents from your servers Pre-configure custom authentication headers which we could attach to every request we make to fetch documents from your service\n\n<h5>Modes of operations:</h5>\n\nThere are 2 modes of operation - synchronous and asynchronous. Most tasks can be called using either APIs. Synchronous APIs return the response right away:\n\n<img src=\"https://eve-docs.idfy.com/assets/images/synchronus_mode.png\">\n\nAsynchronous APIs return a request ID and use a webhook mechanism to return the response back to your servers. You can then use this request ID and feed this into our GET API to consume the response.\n\n<h5>Output in an async API</h5>\n\n<table><tbody><tr><th>Key</th><th>Type</th><th>Details</th></tr><tr></tr><tr><td><div>request_id</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>string</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>UUID for your request. Use this ID to fetch the results of your task. Refer \"Fetch Task Results\" section.\"</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<img src=\"https://eve-docs.idfy.com/assets/images/asynchronus_mode.png\">\n\n<h1>Code Legends</h1>\n\n## **Common Error Codes**\n\n| **Task Type** | **HTTP Error Code** | **Error Code** | **Error Message** | **Remarks** |\n| --- | --- | --- | --- | --- |\n| **Common - All APIs** |  |  |  |  |\n|  | 400 | BAD_REQUEST | Malformed Request | When any mandatory parameters are missing or the input parameters does not follow the API spec this error is sent in response. request_id is generated  <br>  <br>This is common for the cases of document types including:  <br>  <br>mask_ind_aadhaar  <br>  <br>extract_ind_driving_license  <br>  <br>extract_ind_aadhaar  <br>  <br>extract_ind_passport  <br>  <br>extract_ind_voter_id |\n|  | 401 |  | No API key found in request | When API key is missing. No request_id is generated. |\n|  | 403 |  | Invalid Authentication Credentials | When the API key is incorrect. No request_id is generated in this case |\n|  | 413 |  |  | Generated when base64 payload is too large (>3MB) and the request body is too large. No request_id is generated. |\n|  | 422 | INSUFFICIENT_CREDITS | Insufficient credits |  |\n|  | 422 | IMAGE_NOT_ACCESSIBLE | Image is not accessible | This is generated in case the PDF is password protected. |\n|  | 422 | INVALID_URL | Invalid URL | In case the image is not downloadable or the content type is invalid. |\n|  | 422 | INVALID_PDF | PDF is non compliant to request/quality standard | In case the PDF resolution is too large. |\n|  | 429 |  | Rate Limit Reached | When the configured rate limit or default (if not configured) is exceeded. No request_id is generated in this case. No request_id is generated. |\n|  | 500 | INTERNAL_ERROR | Something went wrong | request_id is generated. You will receive this error when there is some issue at IDfy's end. |\n|  | 502 |  |  | In this scenario an HTML page is rendered which states the `BAD GATEWAY` message. |\n|  | 504 | TIMEOUT | timeout | When any IDfy EVE sync API takes longer than 50 secs or IDfy EVE async API takes longer than 10mins to process any request, the request is timed out and this response is sent back. |\n\n## **API Specific Error Codes**\n\n| **Task Type** | **HTTP Error Code** | **Error Code** | **Error Message** | **Remarks** |\n| --- | --- | --- | --- | --- |\n| validate_document | 422 | INVALID_IMAGE | Multiple documents detected, please use single card per image. |  |\n| verify_with_source/validate_bank_account | 400 | BAD_REQUEST | BAD_REQUEST |  |\n| verify_with_source/validate_bank_account | 400 | BAD_REQUEST | Invalid IFSC provided |  |\n| verify_with_source/rc_basic | 400 | BAD_REQUEST | Invalid parameter: RC number should be between 7 to 10 characters long |  |\n| verify_with_source/rc_basic | 400 | BAD_REQUEST | Invalid email address provided |  |\n| verify_with_source/rc_basic | 400 | BAD_REQUEST | There seems to be an issue with your IP address, please check the IPv4, IPv6 or Host name and try again |  |\n| generate/esign_generate | 400 | BAD_REQUEST | esign_file cannot be empty when flow_type = PDF |  |\n| generate/esign_generate | 400 | BAD_REQUEST | esign_fields cannot be empty when flow_type = Template |  |\n| generate/esign_generate | 400 | BAD_REQUEST | Please provide an appropriate Base64 of the PDF |  |\n| generate/esign_generate | 400 | BAD_REQUEST | Please provide a user_key to proceed |  |\n| generate/esign_generate | 400 | BAD_REQUEST | aadhaar_esign_verification cannot be empty |  |\n\n# Integration Process\n\nPlease refer to [this](https://drive.google.com/file/d/1idnTB4CoKZEhhFZxbTCxrUojtaejpzBj/view?usp=sharing) document for understanding the integration procedure of IDfy's APIs.\n\n# FAQ\n\n#### 1) What are the image resolution limits for each APIs?\n\nExample the lowest resolution for livness is 200x200\n\n| **API** | **Low Resolution Limit (either height or width)** | **High Resolution Limit (either height or width)** |\n| --- | --- | --- |\n| Document Image Validation | 150 | 10000 |\n| Liveness | 200 | 7000 |\n| Masking | 150 | 10000 |\n| Aadhaar OCR | 150 | 10000 |\n| PAN OCR | 150 | 10000 |\n| Face Match | 150 | 4096 |\n| IDN KTP Verification | 500 | \\- |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"11914481","collectionId":"6797c328-e461-464a-951e-35596f09ddca","publishedId":"2s8Z6zzXNf","public":true,"publicUrl":"https://eve-api-docs.idfy.com","privateUrl":"https://go.postman.co/documentation/11914481-6797c328-e461-464a-951e-35596f09ddca","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2023-05-09T08:55:41.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":"https://idfy.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://eve-api-docs.idfy.com/view/metadata/2s8Z6zzXNf"}