REST API’s ( V1 & V2 Supports Both )

Login

Method and URL

POST : https://api-dev.springscan.springverify.com/auth/login

Headers

Headers

Description

Token

XXXXXXXX

Example Request

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

{
    "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

Name

Description

Authorization

Bearer + JWT ( Generated from Login API )

Token

XXXXX

Use the JWT generated in the Login API.

Example Request

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

{
    "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

Name

Description

Authorization

Bearer + JWT ( Generated from Login API )

Token

XXXXX

Example Request

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

{
    "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

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

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

{
       "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

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

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

{
      "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

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

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

{
     "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": "<report_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

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

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

[
        {
                "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

Name

Description

Authorization

Bearer + JWT ( Generated from Login API )

Token

XXXXX

Example Request

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

{  "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.