REST API's ( V1 & V2 Supports Both ) ===================================== Login ----- **Method and URL** POST : https://api-dev.springscan.springverify.com/auth/login **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Headers - Description * - Token - XXXXXXXX **Example Request** .. code-block:: bash curl --location --request POST 'https://api-dev.springscan.springverify.com/auth/login' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Postman-Token: 3027720f-71ef-4877-b851-8745e650b4c5' \ --header 'Token: 4cbe51cf-a294-35a8-b3ae-d3cc89abf29c' \ --header 'cache-control: no-cache' \ --data-urlencode 'email=' \ --data-urlencode 'password=' **Example Response** .. code-block:: json { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImluZm9Ac3ByaW5ndmVyaWZ5LmNvbSIsInVzZXJJZCI6IjVlMTczMzZjNzZjYzQzMDAxYzM3MDk5YyIsImlhdCI6MTYxMTIzMjA2NCwiZXhwIjoxNjE5ODcyMDY0fQ.mHaDBcy2F-J7NH1nuhKpjqgL7bLFyTHsej6YjZ5hpqU", "demo_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImluZm9Ac3ByaW5ndmVyaWZ5LmNvbSIsInVzZXJJZCI6IjVlMTczMzZjNzZjYzQzMDAxYzM3MDk5YyIsImlhdCI6MTYxMTIzMjA2NCwiZXhwIjoxNjE5ODcyMDY0fQ._8Jt3qKtmImkZsBtPjXsLvMtsTd-Wo4Gnxl0BA2Ipps", "demo_person_id": "5f20100c173c580014338f3c", "userId": "5e17336c76cc43001c37099c", "user_name": "Springverify India", "company_name": "SpringRole_5" } This API is used to login into the platform. We use Json Web Token for authentication. Please refer here to know more about Json Web Token. It is used as Bearer Token in all the API's apart from login API. Use the JWT token in response as Authorization for all the APIs Use the credentials provided to your company and the Token for generating JWT token. Upload Documents ---------------- **Method and URL** POST : https://api-dev.springscan.springverify.com/user/person/upload/ **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Name - Description * - Authorization - Bearer + JWT ( Generated from Login API ) * - Token - XXXXX Use the JWT generated in the Login API. **Example Request** .. code-block:: bash curl --location --request POST 'https://api-dev.springscan.springverify.com/user/person/upload/' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Token: 4cbe51cf-a294-35a8-b3ae-d3cc89abf29c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InByYXZlZW4uc2FtYXJpeWFAbWVkaWFzc2lzdC5pbiIsInVzZXJJZCI6IjVmZjQ2NjZmZDVhOGVlMDAxNGMxN2VlOSIsImlhdCI6MTYxMTIzNTA2NywiZXhwIjoxNjE5ODc1MDY3fQ.hSXLKCgrMZ2fT1KZovuTK-I44lG13CdvhJ42B7-qMoY' \ --form 'document1=@"/path/to/file"' \ --form 'document2=@"/path/to/file"' **Example Response** .. code-block:: json { "document1": { "Location": "https://pdf-reports-springrole.s3.amazonaws.com/60097f1b124ed40012ef59f7/WhatsApp%20Image%202020-02-14%20at%209.11.06%20AM.jpeg", "Bucket": "pdf-reports-springrole", "originalName": "WhatsApp Image 2020-02-14 at 9.11.06 AM.jpeg", "mimeType": "image/jpeg" }, "belongs_to": "60097f1b124ed40012ef59f7", "s3_paths": "60097f1b124ed40012ef59f8", "person_id": "60097f1b124ed40012ef59f7", "is_new_person": true } This API is to be used if your platform does not have the document (JPG, JPEG, PNG etc) on a hosted URLs. We aim to provide clients with option to host their documents with us. The mentioned documents will be hosted securely with us. Add/Update Selfie ----------------- **Method and URL** POST : https://api-dev.springscan.springverify.com/user/person/personId/selfie **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Name - Description * - Authorization - Bearer + JWT ( Generated from Login API ) * - Token - XXXXX **Example Request** .. code-block:: bash curl --location --request POST 'https://api-dev.springscan.springverify.com/user/person/600526029a9360001887f26f/selfie' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InBvb2phQHlvcG1haWwuY29tIiwidXNlcklkIjoiNWZiNGQzZDZhOWRhOTcwMDEzMWI1YmY1IiwiaWF0IjoxNjA1Njg2ODg3LCJleHAiOjE2MTQzMjY4ODd9.imMwxJepiKRa1muFI7_2fX5hQE_tPZdObta5seCB7vQ' \ --header 'Token: 4cbe51cf-a294-35a8-b3ae-d3cc89abf29c' \ --header 'Content-Type: application/json' \ --data-raw '{ "selfieurl":"https://pdf-reports-springrole.s3.amazonaws.com/me.png" }' **Example Response** .. code-block:: json { "person": { "documents": { "ind_aadhaar": null, "ind_driving_license": null, "ind_pan": null, "ind_voter_id": null, "ind_passport": null, "ind_cheque": null, "ind_rc": null, "bank_account": null, "upi_details": null, "ind_gst_certificate": null, "ind_coa": null }, "selfie": { "url": "https://pdf-reports-springrole.s3.amazonaws.com/me.png" }, "hasConsent": false, "ongridId": "false", "phone": null, "city": null, "gender": null, "selfie_quality": null, "s3_paths": { "belongs_to": "600526029a9360001887f26f", "_id": "600526039a9360001887f270", "createdAt": "2021-01-18T06:09:07.145Z", "updatedAt": "2021-01-18T06:09:07.145Z", "__v": 0 }, "noOcr": false, "ind_address": null, "created_from": "intialize", "createdAt": "2021-01-18T06:09:06.799Z", "updatedAt": "2021-02-10T14:16:14.968Z", "__v": 0 } } Adds a new Selfie to person or updates an existing Selfie, returns the updated person as response. Bank Account Validation ----------------------- **Method and URL** GET : https://api-dev.springscan.springverify.com/v2/user/person/validation/bankDetails/:person_id **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Name - Description * - Authorization - Bearer + JWT ( Generated from Login API ) * - Token - XXXXX * - tokenKey - XXXXX ( To be generated from dashboard ) You can also run this API by passing the tokenKey (generated from Dashboard) in the headers instead of Authorization and token. **Example Request** .. code-block:: bash curl --location --request GET 'https://api-dev.springscan.springverify.com/v2/user/person/validation/bankDetails/5df35fa819bd2a8d8663371c' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Postman-Token: 3027720f-71ef-4877-b851-8745e650b4c5' \ --header 'Token: 4cbe51cf-a294-35a8-b3ae-d3cc89abf29c' \ --header 'cache-control: no-cache' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InBvb2phQHlvcG1haWwuY29tIiwidXNlcklkIjoiNWZiNGQzZDZhOWRhOTcwMDEzMWI1YmY1IiwiaWF0IjoxNjA1Njg2ODg3LCJleHAiOjE2MTQzMjY4ODd9.imMwxJepiKRa1muFI7_2fX5hQE_tPZdObta5seCB7vQ' \ --data-urlencode 'name=John Doe' \ --data-urlencode 'phone=xxxxxxxxxxx' \ --data-urlencode 'bankAccount=026291800001191' \ --data-urlencode 'ifsc=YESB0000262' **Example Response** .. code-block:: json { "got_db_response": true, "result": "id_found", "information": "{\"name\":\"JOHN DOE\",\"account_number\":\"026291800001191\",\"ifsc\":\"YESB0000262\",\"accountExists\":\"YES\"}", "message": "Bank Account details verified successfully.", "success": true, "manual_input": { "name": "John Doe", "phone": "xxxxxxxxxx", "bankAccount": "026291800001191", "ifsc": "YESB0000262", }, "db_output": { "name": "JOHN DOE", "account_number": "026291800001191", "ifsc": "YESB0000262", "accountExists": "YES", "amountDeposited": "1" }, "matched_information": { "name_match": 100, "account_number_match": true, "ifsc_match": true } } API used to verify a bank account and ifsc code combination. **Response Description** * name_match will be percentage match of name in OCR and government retreived name. * account_number_match will be true if account_number in OCR is same as government retreived account_number. * ifsc_match will be true if ifsc in OCR is same as government retreived ifsc. UPI ID Validation ----------------- **Method and URL** GET : https://api-dev.springscan.springverify.com/v2/user/person/validation/upiID/:person_id **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Name - Description * - Authorization - Bearer + JWT ( Generated from Login API ) * - Token - XXXXX * - tokenKey - XXXXX ( To be generated from dashboard ) You can also run this API by passing the tokenKey (generated from Dashboard) in the headers instead of Authorization and token. **Example Request** .. code-block:: bash curl --location --request GET 'https://api-dev.springscan.springverify.com/v2/user/person/validation/upiID/5fb65d9a45ab5c00144a38c2' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Postman-Token: 3027720f-71ef-4877-b851-8745e650b4c5' \ --header 'Token: 4cbe51cf-a294-35a8-b3ae-d3cc89abf29c' \ --header 'cache-control: no-cache' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InBvb2phQHlvcG1haWwuY29tIiwidXNlcklkIjoiNWZiNGQzZDZhOWRhOTcwMDEzMWI1YmY1IiwiaWF0IjoxNjA1Njg2ODg3LCJleHAiOjE2MTQzMjY4ODd9.imMwxJepiKRa1muFI7_2fX5hQE_tPZdObta5seCB7vQ' \ --data-urlencode 'name=John Doe' \ --data-urlencode 'vpa=success@upi' **Example Response** .. code-block:: json { "got_db_response": true, "result": "id_found", "information": "{\"name\":\"John Doe\",\"vpa\":\"success@upi\",\"accountExists\":\"YES\"}", "message": "VPA verification successful", "success": true, "manual_input": { "name": "John Doe", "vpa": "success@upi" }, "db_output": { "name": "John Doe", "vpa": "success@upi", "accountExists": "YES" }, "matched_information": { "name_match": 100, "vpa_match": true } } API used to verify an existing UPI handle. **Response Description** * name_match will be percentage match of name in OCR and government retreived name. * vpa_match will be true if vpa in OCR is same as government retreived vpa. Court Check API --------------- **Method and URL** POST : https://api-dev.springscan.springverify.com/criminal/searchDirect **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Name - Description * - Authorization - Bearer + JWT ( Generated from Login API ) * - Token - XXXXX * - tokenKey - XXXXX ( To be generated from dashboard ) You can also run this API by passing the tokenKey (generated from Dashboard) in the headers instead of Authorization and token. **Example Request** .. code-block:: bash curl --location --request POST 'https://api-dev.springscan.springverify.com/criminal/searchDirect' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Postman-Token: 3027720f-71ef-4877-b851-8745e650b4c5' \ --header 'Token: 4cbe51cf-a294-35a8-b3ae-d3cc89abf29c' \ --header 'cache-control: no-cache' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImluZm9Ac3ByaW5ndmVyaWZ5LmNvbSIsInVzZXJJZCI6IjVlMTczMzZjNzZjYzQzMDAxYzM3MDk5YyIsImlhdCI6MTYwODc5NDYwMiwiZXhwIjoxNjE3NDM0NjAyfQ.O3N7Dmgk_3IqH-Mc7pPObsHaM5NgUE84WoH7iTz5HsY' \ --data-urlencode 'name=XXXXX' \ --data-urlencode 'fatherName=XXXXX' \ --data-urlencode 'address=XXXXXXX' **Example Response** .. code-block:: json { "reports": [ { "year": "YYYY", "subject": null, "address_taluka": null, "source": "XXXXX", "type": "XX", "next_hearing_date": " 21st December 2017", "address_pincode": null, "first_hearing_date": " 28th November 2017", "state_name": "XXXXXXXXXXXX", "address_wc": 0, "id": null, "under_acts": "XXXXXXXXXXX", "address_district": null, "nature_of_disposal": null, "uniq_case_id": "XXXXXXXXX", "name_wc": "XX", "business_category": "XXXXXXXX", "filing_no": null, "case_category": "XXXXXXXX", "address_street": null, "name": "XX", "dist_code": "XX", "state_code": "XX", "link": "", "address_state": null, "court_no_judge": null, "decision_date": null, "court_no_name": null, "under_sections": "XX", "court_name": null, "case_no_year": null, "address": null, "case_code": "XXXXXXXXXXXXXXXX", "dist_name": "XXXXXXXXX", "case_type": "XXXXXXX", "police_station": "XXXXXXX", "case_year": "XXXX", "registration_no": null, "case_decision_date": null, "purpose_of_hearing": "XXXXXXX", "case_status": null, "fir_no": "XX", "md5": "XXXXXXXXXXXXXX", "raw_address": null, "court_code": XX, "cnr": "XXXXXXXXX", "data_category": "XXXXXXXXXX", "global_category": "XXXXXXXX", "oparty": "XXXXXXXX", "score": "XXXX", "model_score": "XXXXXX" } ], "status": "completed", "query": { "name": "XXXXXX", "address": "XXXXXXXXX", "fatherName": "XXXXXXXXX" }, "createdAt": "2020-03-16T14:07:46.285Z", "updatedAt": "2020-03-16T14:07:46.285Z", "__v": 0 } Fetches the court case reports matching the name,fatherName and address. Aadhaar Masking API -------------------- **Method and URL** POST : https://api-dev.springscan.springverify.com/verification/maskAadhaar **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Name - Description * - Authorization - Bearer + JWT ( Generated from Login API ) * - Token - XXXXX * - tokenKey - XXXXX ( To be generated from dashboard ) You can also run this API by passing the tokenKey (generated from Dashboard) in the headers instead of Authorization and token. **Example Request** .. code-block:: bash curl --location --request POST 'https://api-dev.springscan.springverify.com/verification/maskAadhaar' \ --header 'Token: 4cbe51cf-a294-35a8-b3ae-d3cc89abf29c' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InBvb2phQHlvcG1haWwuY29tIiwidXNlcklkIjoiNWZiNGQzZDZhOWRhOTcwMDEzMWI1YmY1IiwiaWF0IjoxNjA1Njg2ODg3LCJleHAiOjE2MTQzMjY4ODd9.imMwxJepiKRa1muFI7_2fX5hQE_tPZdObta5seCB7vQ' \ --data-raw '{ "aadhaar_url": [ "https://pdf-reports-springrole.s3.amazonaws.com/me.jpg" ], "consent": true }' **Example Response** .. code-block:: json [ { "action": "mask", "completed_at": "2020-04-22T17:22:12+05:30", "created_at": "2020-04-22T17:22:08+05:30", "group_id": "b101b3d0-848f-11ea-b554-8b104684043b", "request_id": "f6dc6716-dc17-40ae-ad5f-13eff5ae6c1f", "result": { "document_url": "https%3A%2F%2Fpdf-reports-springrole.s3.amazonaws.com%2Fme1.jpg", "id_number_found": true, "original_document_url": "https%3A%2F%2Fpdf-reports-springrole.s3.amazonaws.com%2Fme.jpg", "self_link": "" }, "status": "completed", "task_id": "b1018cc0-848f-11ea-b554-8b104684043b", "type": "ind_aadhaar" } ] Masks an Aadhaar image to hide first 12 digits of Aadhaar ID number. Get Person ---------- **Method and URL** GET : https://api-dev.springscan.springverify.com/user/getPersonPublicApi/personId **Headers** .. list-table:: :widths: 30 70 :header-rows: 1 * - Name - Description * - Authorization - Bearer + JWT ( Generated from Login API ) * - Token - XXXXX **Example Request** .. code-block:: bash curl --location --request GET 'https://api-dev.springscan.springverify.com/user/getPersonPublicApi/personId' \ --header 'Accept: */*' \ --header 'Accept-Encoding: gzip, deflate' \ --header 'Cache-Control: no-cache' \ --header 'Connection: keep-alive' \ --header 'Postman-Token: bc628ecf-df7c-41a2-99ed-b96d8070aafb,059b478c-6068-4e48-8d7f-bdb1770b8308' \ --header 'Token: 00ffc975-eafa-4451-9a71-aad62623c963' \ --header 'User-Agent: PostmanRuntime/7.20.1' \ --header 'cache-control: no-cache' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InNvdXJhYmhiYWdyZWNoYTFAZ21haWwuY29tIiwidXNlcklkIjoiNWNkYmFjMTQ4ODY1NzQ0YTIwNGQ1NTA2IiwiaWF0IjoxNTkxMDE3ODc4LCJleHAiOjE1OTk2NTc4Nzh9.Z7Z4XHOzxgK0hyEN3EjucSAB9qIEsHq85GH' **Example Response** .. code-block:: json { "person": { "name": { "first": "xxxxx", "last": "xxxxx", "middle": "xxxxx" }, "documents": { "ind_aadhaar": { "result": { "address": "xxxxxxxxxxxxxxx", "date_of_birth": "yyyy-mm-dd", "district": "xxxx", "fathers_name": "xxxxxxx", "gender": "MALE", "house_number": "xxxxxxxxx", "id_number": "xxxxxxxxx", "is_scanned": "false", "name_on_card": "xxxxxxxxx", "pincode": "xxxxxx", "state": "xxxxx", "street_address": "xxxxx", "year_of_birth": "xxxx" }, "manualObj": null, "status": "completed", "faceMatched": false, "matchResult": null, "govResult": null, "docType": "ind_aadhaar", "document1": "xxxxx", "belongsTo": "xxxxx", "got_face_match": true, "got_ocr_response": true, "got_gov_response": true, "createdAt": "2019-12-18T10:22:59.917Z", "updatedAt": "2019-12-18T10:23:01.167Z", "__v": 0 }, "ind_driving_license": null, "ind_pan": null, "ind_voter_id": null, "ind_passport": null }, "selfie": null, "hasConsent": false, "phone": null, "city": null, "gender": null, "s3_paths": null, "createdAt": "2019-12-18T10:22:49.563Z", "updatedAt": "2019-12-18T10:23:00.299Z", "__v": 0 } } API used to get Person details.