Skip to main content

EHIC Scanner | Flutter Document Scanner


The Scanbot SDK comes with an essential camera view, additional views for extending the camera functionality and a detector classes that handle all the camera and detection implementation details for you.

The Scanbot SDK provides the ability to scan and extract content from European Health Insurance Cards (EHIC), a.k.a. elektronische Gesundheitskarten (eGK).

The following fields are supported:


The EHIC scanner is available both as an RTU-UI Component (types of components are explained here).

Take a look at our Example Apps to see how to integrate the European Health Insurance Card Scanner.

EHIC Scanner RTU-UI Component


Opens a scanner to scan and extract data from the back side of European Health Insurance Cards (EHIC).


The EHIC Scanner is based on the OCR feature and thus requires the proper installation of the OCR language files deu.traineddata and eng.traineddata (aka. blob files). For more details on how to set up OCR language files please refer to the OCR section.

Use the plugin API method ScanbotSdkUi.startEhicScanner(config) to start the EHIC Scanner UI.

var config = HealthInsuranceScannerConfiguration(
topBarButtonsColor: Colors.white70,
var result = await ScanbotSdkUi.startEhicScanner(config);
// result.fields ...
  • result.operationResult -

    • SUCCESS if EHIC data was detected
    • ERROR if an error occurred
    • CANCELED if the user canceled the operation (tapped on the "cancel" button)
  • result.fields - an array of recognized EHIC fields. Each field is an object with the following properties:

  • status - one of folowing values SUCCESS,FAILED_DETECTION,FAILED_VALIDATION.

  /// The preferred camera module (default - BACK)
CameraModule? cameraModule;

/// Background color outside of the finder window.
Color? cameraOverlayColor;

/// Title of the cancel button.
String? cancelButtonTitle;

/// Whether the cancel button is hidden or not. iOS only.
bool? cancelButtonHidden;

/// String being displayed when health insurance card was not found.
String? detectionStatusFailedDetectionText;

/// String being displayed when health insurance card was found but not recognized.
String? detectionStatusFailedValidationText;

/// String being displayed when health insurance card was found and recognized.
String? detectionStatusSuccessText;

/// Title of the button that opens the screen where the user can allow the usage of the camera by the app.
String? enableCameraButtonTitle;

/// Text that will be displayed when the app is not allowed to use the camera, prompting the user to enable the usage of the camera.
String? enableCameraExplanationText;

/// Foreground color of the detection overlay.
Color? finderLineColor;

/// Width of finder frame border. Default is 2.
double? finderLineWidth;

/// String being displayed as description.
String? finderTextHint;

/// Foreground color of the description label.
Color? finderTextHintColor;

/// Controls whether the flash toggle button is hidden or not. iOS only.
bool? flashButtonHidden;

/// Title of the flash toggle button. iOS only.
String? flashButtonTitle;

/// Controls whether the flash should be initially enabled. The default value is FALSE.
bool? flashEnabled;

/// UI Interface orientation lock mode
OrientationLockMode? orientationLockMode;

/// The background color of the top toolbar.
Color? topBarBackgroundColor;

/// The color of all active toggle buttons in the toolbar.
Color? topBarButtonsActiveColor;

/// The color of all inactive toggle buttons in the toolbar.
Color? topBarButtonsInactiveColor;

/// Controls whether buttons should use all capitals style, as defined by the Android Material Design. Defaults to TRUE. Android only.
bool? useButtonsAllCaps;

/// If `true`, replaces the cancel button in the top bar with a back arrow icon. The default value is FALSE. Android only.
bool? replaceCancelButtonWithIcon;

/// Preview mode of the camera. FILL_IN or FIT_IN. Default is FILL_IN. Android only
CameraPreviewMode? cameraPreviewMode;

/// Whether touch-to-focus is enabled on camera preview. Enabled by default. Android only.
bool? touchToFocusEnabled;

Want to scan longer than one minute?

Generate your free "no-strings-attached" Trial License and properly test the Scanbot SDK.

Get your free Trial License

What do you think of this documentation?