Get started with Non-Doc Identity Verification

Start conducting effective identity verification with the Non-Doc solution.

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.

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.

📘

Note

You can navigate the applicant directly to a Non-Doc Verification flow with a predefined verification country and method by enabling the ekycSkipFixedCountrySelect feature flag and configuring a dedicated level with a selected:

  1. country of onboarding, and
  2. corresponding Non-Doc Verification product

This will automatically skip the Verification Country and Method Selection screens in Sumsub's Web SDK framework, which may shorten the onboarding process by one or two screens, depending on the specific Non-Doc product.

To enable this feature flag in your verification flow, contact your Customer Success Manager.

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.