Get started with Non-Doc Identity Verification

To start using Non-Doc Identity Verification, you can opt for:

📘

Note

  • Non-Doc Identity Verification comes at an additional cost regardless of the integration method. Make sure to contact us before starting the integration.
  • To view and manage your available and active Non-Doc Identity Verification products, refer to this article

Verify identity via Web and Mobile SDKs

Use our Web and Mobile SDKs to conduct Non-Doc Identity Verification code-free:

  1. Set up the integration, as described in the WebSDK integration article and MobileSDK integration article.
  2. Create a verification level and add a Non-Doc verification step.
  3. Conduct verification and handle verification results.

Use Sumsub API

You can utilize our public API endpoints to conduct identity verification using the Non-Doc solution:

  1. Create a verification level with a Non-Doc step.
  2. Create an applicant and pass the level name created at step 1 as the levelName query parameter.
curl -X POST \
  'https://api.sumsub.com/resources/applicants?levelName=doc-free-level' \
  -H 'Content-Type: application/json' \
  -d '{
          "externalUserId": "someUniqueUserId",
      }'
{
  "id": "65d72c063cf64929770e36c7",
  "createdAt": "2024-02-22 11:12:06",
  "key": "EJBDYWTFWAQXSH",
  "clientId": "client_id",
  "inspectionId": "65d72c063cf64929770e36c8",
  "externalUserId": "someUniqueUserId",
  "info": {},
  "applicantPlatform": "API",
  "requiredIdDocs": {
    "videoIdent": true,
    "videoIdentUploadTypes": [
      "ID_CARD",
      "PASSPORT"
    ],
    "docSets": [
      {
        "idDocSetType": "IDENTITY",
        "types": [
          "ID_CARD",
          "PASSPORT",
          "RESIDENCE_PERMIT",
          "DRIVERS"
        ],
        "subTypes": [
          "FRONT_SIDE",
          "BACK_SIDE"
        ],
        "videoRequired": "disabled",
        "captureMode": "manualAndAuto",
        "uploaderMode": "always"
      },
      {
        "idDocSetType": "IDENTITY2",
        "types": [
          "VISA"
        ]
      }
    ]
  },
  "review": {
    "reviewId": "GwVKG",
    "attemptId": "VrrHy",
    "attemptCnt": 0,
    "levelName": "basic-kyc-level",
    "levelAutoCheckMode": null,
    "createDate": "2024-02-22 11:12:06+0000",
    "reviewStatus": "init",
    "priority": 0
  },
  "type": "individual",
  "inspectionMetadata": []
}
  1. Submit the applicant data as the following example demonstrates.
curl -X POST \
  'https://api.sumsub.com/resources/applicants/631f268442d8290001e1eee9/ekyc/submit' \
  -H 'Content-Type: application/json' \
  -d '{
        "info": {
            "country": "IND",
            "tin": "999999990019",
        }
    }'

You will receive one of the following answers, depending on the results and the need for confirmation:

  • The provided data is valid and no confirmation is required.
    {
      "status" : "completed"
    }
  • The provided data is valid and OTP confirmation is required.
    {
        "status": "confirmationRequired",
        "confirmationId": "bzaPxnCpyxEqs0sJKASXxZIk",
        "confirmationStatus": "created",
        "confirmationType": "otp",
        "otpConfirmation": {
            "codeLength": "6",
        }
    }
  • The provided data is valid and authentication through external services is required.
    {
      "status" : "confirmationRequired",
      "confirmationType" : "oAuth",
      "confirmationId" : "wXhl47RZeJfoOSTmUFT9j5On",
      "confirmationStatus" : "created",
      "oauthConfirmation" : {
        "url" : "https://ext.auth.service.com/oidc/authorize?param1=value1&param2=value2",
        "redirectUrl" : "https://api.sumsub.com/resources/ekyc/redirect"
      }
    }

If something goes wrong or the provided data is invalid, you will receive an error message with the error code and the applicant must resubmit their information.

  1. [Optional] Confirm the applicant data if required. If in the previous step, you received status : confirmationRequired, you will need to confirm submission by one of the following methods, depending on the confirmationType.
curl -X POST \
  'https://api.sumsub.com/resources/applicants/631f268442d8290001e1eee9/ekyc/confirm/bzaPxnCpyxEqs0sJKASXxZIk' \
  -H 'Content-Type: application/json' \
  -d '{
        "otp": {
            "code": "123456",
        }
    }'
curl -X POST \
  'https://api.sumsub.com/resources/applicants/631f268442d8290001e1eee9/ekyc/confirm/bzaPxnCpyxEqs0sJKASXxZIk' \
  -H 'Content-Type: application/json' \
  -d '{
        "oauth": {
            "completeUrl": "https://in.sumsub.com/idensic/ekyc/redirect?code=rUKrpIoRZ44ENZnz8EC6FP",
        }
    }'
{
    "status": "confirmationRequired",
    "confirmationType": "otp",
    "confirmationId": "bzaPxnCpyxEqs0sJKASXxZIk",
    "confirmationStatus": "retry",
    "otpConfirmation": {
        "codeLength": "6",
    }
}
  1. Upload a selfie with idDocType: "SELFIE".
curl -X POST \
  'https://api.sumsub.com/resources/applicants/5b75a5e80a975a3ef2102a87/info/idDoc' \
  -H 'Content-Type: multipart/form-data' \
  -H 'X-Return-Doc-Warnings: true' \
  -F 'metadata={"idDocType":"SELFIE","country":"USA"}' \
  -F 'content=@/SumSub/Example/name.jpg'
{
  "idDocType" : "SELFIE",
  "country" : "USA"
}
  1. Request an applicant check.
curl -X POST \
  'https://api.sumsub.com/resources/applicants/5b73b82f0a975a3b46429758/status/pending'
{
  "ok": 1
}
  1. Handle verification results.

Enable Non-Doc Identity Verification at Identity document step

If you want to have both of the options—Non-Doc and Identity document—available as a single verification step in the WebSDK:

  1. In the Dashboard, open the Supported ID Documents page and enable Non-Doc Check for countries where you want to make this option available.
  2. Set up a verification level:

Fallback to standard verification

In case something goes wrong during Non-Doc Identity Verification or you just want to verify applicants using the standard document verification approach:

  • For SDKs, use the Workflow Builder to configure the verification flow as necessary.
  • For the API, If you already have a complex logic on your side, move the applicants to a desired level by using this API method.