Skip to main content
Version: v3000

Scanning settings

You can configure BlinkCard scanning through its scanning settings.

These settings control image quality handling, field extraction, image cropping, liveness detection, and anonymization.

Input image source

The scanning settings live inside the session settings, alongside inputImageSource, which indicates whether images come from a video stream or a single photo. The default is video.

Some settings behave differently depending on the input image source. These are called out where relevant below.

skipImagesWithBlur​

type: boolean, default: true

Indicates whether to reject frames if blur is detected on the card image.

When true, frames with detected blur are skipped to ensure only high-quality images are processed. When false, blurred frames are still processed, and the blur status is reported in the result.


tiltDetectionLevel​

type: string, default: mid

The level of allowed detected tilt of the card in the image.

Defines the severity of allowed detected tilt of the card in the image. Values range from off (detection turned off) to higher levels of allowed tilt.

Allowed values: off, low, mid, high.

note

On iOS, this setting is named tiltSensitivityLevel.


inputImageMargin​

type: float, default: 0.02

Defines the minimum required margin between the edge of the input image and the card, expressed as a percentage of the image dimensions.

Allowed values: 0.0 to 1.0.

note

This setting is applicable only when the input image source is video.

extractionSettings​

extractionSettings controls which fields are extracted from the card.

Disabling extraction of unused fields can improve recognition performance or reduce memory usage.


extractIban​

type: boolean, default: true

Whether to extract the IBAN (International Bank Account Number).


extractExpiryDate​

type: boolean, default: true

Whether to extract the card expiry date.


extractCardholderName​

type: boolean, default: true

Whether to extract the cardholder name.


extractCvv​

type: boolean, default: true

Whether to extract the CVV (Card Verification Value) security code.

The CVV is usually found on the back of the card and is required for secure transactions.


extractInvalidCardNumber​

type: boolean, default: false

Indicates whether card numbers that fail checksum validation should be accepted.

Card numbers are validated using the Luhn algorithm. When false, only card numbers that pass the checksum validation are accepted. When true, card numbers that fail checksum validation are still accepted. This may be useful for testing purposes or when processing damaged or worn cards.

The cardNumberValid field in the result will still indicate whether the checksum passed.

croppedImageSettings​

croppedImageSettings controls how card images are cropped, including resolution, the extension of the cropping area, and whether the cropped image is returned in the result.


dotsPerInch​

type: integer, default: 250

The resolution of the returned cropped card image in dots per inch.


extensionFactor​

type: float, default: 0.0

Expands the card crop boundary outward by a fraction of the card's longest edge.

Allowed values: 0.0 to 1.0.


returnCardImage​

type: boolean, default: false

Indicates whether the cropped card image should be returned in the result.

Provides the complete card image for record keeping or further processing. Disable to reduce memory usage if the image is not needed.

livenessSettings​

livenessSettings controls the behavior of liveness detection, including thresholds for hand detection and the strictness of screen and photocopy analysis.


handToCardSizeRatio​

type: float, default: 0.15

Minimum hand-to-card size ratio for valid hand detection.

Controls how large a hand must appear in the frame relative to the card to be considered valid. Lower values detect smaller or more distant hands. Hand scale is calculated as a ratio between the area of the hand mask and the card mask.

Allowed values: 0.0 to 1.0.


handCardOverlapThreshold​

type: float, default: 0.05

Minimum overlap threshold between detected hand and card regions.

This parameter adjusts heuristics that eliminate cases where a hand is present in the input but is not holding the card. It is the minimal ratio of hand pixels inside the frame surrounding the card to the area of that frame. Only pixels inside that frame are used, to ignore false-positive hand segmentations inside the card.

Allowed values: 0.0 to 1.0.


enableCardHeldInHandCheck​

type: boolean, default: true

Enables or disables the check for the card being held in hand.

When true, liveness detection includes a check that verifies the card is being held in hand.


screenCheckStrictnessLevel​

type: string, default: level-5

Sensitivity level for detecting frames where the card is displayed on a screen.

Higher levels provide better security by being stricter in detecting screen-displayed cards, but may increase false positives.

Allowed values: disabled, level-1 through level-10.

  • disabled: turns the check off
  • level-1: lowest false reject rate, highest false accept rate
  • level-10: highest false reject rate, lowest false accept rate

photocopyCheckStrictnessLevel​

type: string, default: level-5

Sensitivity level for detecting frames where the presented card is a photocopy.

Higher levels provide better security by being stricter in detecting photocopied cards, but may increase false positives.

Allowed values: disabled, level-1 through level-10.

  • disabled: turns the check off
  • level-1: lowest false reject rate, highest false accept rate
  • level-10: highest false reject rate, lowest false accept rate

anonymizationSettings​

anonymizationSettings controls the anonymization of sensitive data in the data and images returned by the SDK.

Each mode accepts the following values:

  • none: anonymization is not performed
  • image-only: the card image is anonymized with black boxes covering sensitive data
  • result-fields-only: result fields containing sensitive data are removed from the result
  • full-result: combines image-only and result-fields-only
note

On iOS, anonymization is referred to as redaction. The anonymizationSettings object is named redactionSettings, the mode type is RedactionMode, and each field uses Redaction instead of Anonymization (for example, cvvAnonymizationMode is cvvRedactionMode).


cardNumberAnonymizationSettings​

cardNumberAnonymizationSettings controls card number anonymization.

It has the following fields:

  • mode
    • Defines the mode of card number anonymization.
    • type: string, default: none
  • prefixDigitsVisible
    • Defines how many digits at the beginning of the card number remain visible after anonymization.
    • type: integer, default: 0
  • suffixDigitsVisible
    • Defines how many digits at the end of the card number remain visible after anonymization.
    • type: integer, default: 0
note

On Android, the mode field is named anonymizationMode.


cardNumberPrefixAnonymizationMode​

type: string, default: none

Defines the mode of card number prefix anonymization.


cvvAnonymizationMode​

type: string, default: none

Defines the mode of CVV anonymization.


ibanAnonymizationMode​

type: string, default: none

Defines the mode of IBAN anonymization.


cardholderNameAnonymizationMode​

type: string, default: none

Defines the mode of cardholder name anonymization.