Skip to main content
Version: v8000

Detect whether a document is supported

There are two distinct questions you might ask:

  • Is this document type supported by BlinkID at all?
  • Did the SDK classify the document it just processed, and as what?

Is the document type supported by BlinkID​

BlinkID supports a large, continuously growing catalog of identity documents. The authoritative answer to "can BlinkID read this document" is the published list of supported documents. See Supported documents for the full catalog.

At runtime, you find out that a document is not supported through the per-frame processing status. After processing an image, read inputImageAnalysisResult.processingStatus. A value of unsupported-document means the recognizer does not support the document in the frame.

The same status also appears when a document is supported by BlinkID but excluded by a document class filter you configured. From the SDK's perspective these are indistinguishable: in both cases the document is "unsupported" relative to what the current session will accept. See How to restrict documents for that case.

const processResult = await session.process(imageData);
const status = processResult.inputImageAnalysisResult.processingStatus;

if (status === "unsupported-document") {
console.log("This document is not supported.");
}

Inspect what the SDK classified​

When BlinkID does support and recognize a document, the final result carries a documentClassInfo describing what was classified. Retrieve the result after processing, then inspect documentClassInfo.

The most useful fields are:

  • country: a country enum
  • region: a region enum
  • type: a document type enum
  • countryName: the human-readable country name
  • isoNumericCountryCode, isoAlpha2CountryCode, isoAlpha3CountryCode: ISO country codes
const result = await session.getResult();
const classInfo = result.documentClassInfo;

if (classInfo?.country !== undefined && classInfo?.type !== undefined) {
console.log("Recognized document.");
console.log("Country:", classInfo.countryName);
console.log("Country code:", classInfo.isoAlpha3CountryCode);
console.log("Country enum:", classInfo.country);
console.log("Region enum:", classInfo.region);
console.log("Type enum:", classInfo.type);
} else {
console.log("Document was not classified.");
}

Restricting to your own accepted set​

Detecting whether BlinkID supports a document is different from deciding which documents your integration accepts. If you want to accept only a narrower set, for example only passports from a specific country, configure a document class filter. Documents your filter rejects also surface at runtime as unsupported-document. See How to restrict documents.