> For the complete documentation index, see [llms.txt](https://legacy-docs.usesmileid.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://legacy-docs.usesmileid.com/integration-options/mobile/flutter/id-card-capture.md).

# ID Card Capture

## ID Card Capture

ID Card Capture will capture an id card image for a tag that may be provided during initiation and if not provided this will be auto generated by the SDK and returned with a code.

### Import the library <a href="#import-the-library" id="import-the-library"></a>

```
import 'package:smile_flutter/smile_flutter.dart';
```

### Capture ID Card <a href="#capture-selfie" id="capture-selfie"></a>

If you want the SDK to generate a tag for you then call the method with an empty string

```
 var result = await SmileFlutter.captureIDCard("") ;
```

If you want the generate to use a custom tag send a string to the SDK with alphanumeric characters with the exception of an underscore and no spacing in them.

```
var result = await SmileFlutter.captureIDCard(<STRING_TAG>);
```

This will present a screen as belowID Card Capture

![](/files/-Mb0MKMqONlz0vvlkHPD)

### Get Results <a href="#get-results" id="get-results"></a>

The selfie capture process is an asynchronous process and will return an error code and a tag once done. The result looks as the below

```
    var resultCode = result!["SID_RESULT_CODE"];
    var resultTag = result["SID_RESULT_TAG"];
```

If the result code is -1 AND the tag is not null or empty then the selfie capture was successful.

### Optional Permissions

By default the SDK will request for permissions on it's own particularly on android and the first instance the call to the captureSelfie may fail and will definately fail if the user has not allowed the permissions for camera

It is advisable to then do permissions request prior to calling the captureSelfie method to make sure you handle permissions and perhaps even check for permissions before in that case then the call should be

```
var result = await SmileFlutter.captureIDCard("", HashMap<String, String>(),false)
```

The false will mean the SDK will try to open the selfie capture and assume permission handling has already been done

### Optional UI Customisations

For basic UI customisation, an additional key-value Hashmap needs to be passed as second parameter when performing a call to the library's `captureSelfie("<TAG>",HashMap<String, String>(),false`)

`)` method, where `tag` is a string and `config` the added key-value Map containing the desired settings.

```
var config = HashMap<String, String>();
config["capture_title_text"] = "Capturing your smile..."";
var result = await SmileFlutter.captureSelfie("", config) ?? null;
```

### Basic Example

* `id_capture_side`: a string value with options `0,1,2 0` being capture front only, `1` being capture front and back and `2` being capture back only
* `id_capture_orientation`: a string that determines the ***prompt*** text view on the selfie review screen; this text view refers to the one directly under the selfie image view

```
var config = HashMap<String, String>();
config["id_capture_side"] = "0";
config["id_capture_orientation"] = "2";
var result = await SmileFlutter.captureIDCard("test_tag",config) ?? null;
```

\\


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://legacy-docs.usesmileid.com/integration-options/mobile/flutter/id-card-capture.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
