> For the complete documentation index, see [llms.txt](https://simprints.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://simprints.gitbook.io/docs/development/simprints-for-developers/integrating-with-simprints/exit-forms.md).

# Exit Forms

### What is an Exit Form?

An **exit form** is a form presented to the user to capture reasons for ending a biometric capture before completion. This form is triggered if the user presses the Android back button in the middle of the flow. This can be due to:

* the person to be captured not being present
* the person refusing consent for personal reasons
* technical reasons like Bluetooth or device malfunction

The form contains general reasons for the exit early, as well as a custom message box to indicate other reasons not specified. Whenever an exit occurs, the reason for the exit is available to the calling application and the values can be extracted for use within the calling application.

<figure><img src="https://2829653571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fe3eCeQ95EVZnUB1IR9zM%2Fuploads%2FRht6bRzSlosYwSMgAw2d%2FScreenshot_20240820_163111.png?alt=media&amp;token=af2ac38b-5bcc-4c33-a6aa-c21b8d3c5bf7" alt="" width="375"><figcaption></figcaption></figure>

If you would like to get the **exit form** data that is sent back to inform your workflow when handling the result of a workflow, you can get the **RefusalForm** object with the properties:

* **reason** - indicates the reason for exiting the workflow
* **extra** - indicates any extra message

```kotlin

val simprintsLauncher = registerForActivityResult(SimprintsContract()) { response ->
    
    if (response.resultCode != Activity.RESULT_OK) {
        // check-out Handling Errors page for reference
    }
    
    if (response.refusal != null) {
        val reason = response.refusal.reason
        val extra = response.refusal.extra
    }

    // Handle response data
}
```

These are the reasons that **Simprints ID** can return:

* REFUSED\_RELIGION - returned when the biometric capture was refused due to religious concerns
* REFUSED\_DATA\_CONCERNS - returned when the biometric capture was refused due to personal data concerns
* REFUSED\_PERMISSION - returned when the beneficiary refuses permissions for biometric capture
* SCANNER\_NOT\_WORKING - returned when the fingerprint scanner is not working
* APP\_NOT\_WORKING - returned when SID app stops working during biometric capture
* REFUSED\_NOT\_PRESENT - returned when the beneficiary to be captured is not present themselves
* REFUSED\_YOUNG - returned when the beneficiary to be captured is too young
* WRONG\_AGE\_GROUP\_SELECTED - returned when a wrong choice was made on the age selection screen
* OTHER - returned when some other reason for refusal, has been provided.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://simprints.gitbook.io/docs/development/simprints-for-developers/integrating-with-simprints/exit-forms.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
