> 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/android/submit-a-job.md).

# SIDConfig

This is the core part of a Smile ID job configuration which has information on how information should be sent and has 7 main methods

This is the core part of a Smile ID job configuration which has information on how information should be sent and has 7 main methods

**1.setRetryOnfailurePolicy**

Takes a parameter of class **RetryOnFailurePolicy** which is described below

```
//instantiate the class
RetryOnFailurePolicy retryOnFailurePolicy = new RetryOnFailurePolicy();

//set the number of times a retry should be attempted before giving up
retryOnFailurePolicy.setRetryCount(10);

//set the spacing in milliseconds between consecutive retries
retryOnFailurePolicy.setRetryTimeout(TimeUnit.SECONDS.toMillis(15));
```

**2.setMode** setSmileIdNetData

Takes a parameter of the enum **SIDConfig.Mode** described below\\

```
//auth type jobs eg job type 2 and job type 8
SIDConfig.Mode.AUTHENTICATION

//enroll/register type jobs eg 1 and 4
SIDConfig.Mode.ENROLL
```

**3. setSmileIdNetData**

�

Takes a parameter of the class **SIDNetData** described below

```
//for the test environment
SIDNetData data = new SIDNetData(<Context>, SIDNetData.Environment.TEST);

//for the prod environment
SIDNetData data = new SIDNetData(<Context>, SIDNetData.Environment.PROD);
```

**4. � setGeoInformation**

Takes a parameter of class **GeoInfos** described below

```
//instantiate the class
GeoInfos infos = new GeoInfos();

//sets the accuracy of the location in meters
infos.setAccuracy(accuracy);

//sets the altitude
infos.setAltitude(altitude);

//sets the latitude
infos.setLatitude(latitude);

//sets the longitude
infos.setLongitude(longitude);

//sets the last updated elapsed time
infos.setLastUpdate(lastUpdate);

//confirms the permissions have been granted or not
infos.setGeoPermissionGranted(mGeoPermissionGranted);
```

#### **5. �** setSIDMetadata

�Takes a parameter of class **SIDMetadata** which is is an object used to send two different kinds of metadata the first one being the User id information and partner parameters which can be associated with jobs to instantiate the metadata object you do the below

```
//Instantiation
SIDMetadata metadata = new SIDMetadata();

//To get the user id information
 SIDUserIdInfo userIdInfo = metadata.getSidUserIdInfo();

//To get the partner parameters
PartnerParams params  = metadata.getPartnerParams();
```

For more information on this checkout this guide

#### **5. �** setJobType

Takes an integer parameter and sets the job type for more information on this checkout this guide on job types

**6. useIdCard**

Takes a boolean parameter confirming if this job has an id card image associated with it

#### 7. (Optional) Set a callback url

From version 6.4.2 there is added functionality to set custom callback using the SDK, this can be done by using the SIDNetData class. After setting the other settings in this class then call the method`setCallBackUrl` as in the example below

If the call back URL is not set from the SDK it will always default to the setting on the backend.

More information on callback URL can be found [here](https://docs.usesmileid.com/further-reading/faqs/how-do-i-setup-a-callback)

```
SIDNetData data = new SIDNetData();
....//other SIDNetData settings
data.setCallBackUrl(https://example.com/callback);
```

### SIDConfig SUMMARY

<pre><code>SIDConfig sidConfig = new SIDConfig.Builder(this)
        .setRetryOnfailurePolicy(getRetryOnFailurePolicy())
        .setMode(SIDConfig.Mode.ENROLL)
        .setSmileIdNetData(data)
        .setGeoInformation(infos)
        .setSIDMetadata(metadata)
        .setAllowNewEnroll(&#x3C;true/false>) ==> will allow reuse of user ids
<strong>        .useEnrolledImage(&#x3C;true/false>) ==> will allow to update enrolled selfie
</strong>        .setJobType(jobType)
        .useIdCard(useIdCard)
        .build();
</code></pre>

## �Submit The Job

```
//Instantiate SIDNetworkRequest object to send
SIDNetworkRequest mSINetworkrequest = new SIDNetworkRequest(this);
...
...
...
//submit the job
mSINetworkrequest.submit(sidConfig);
```


---

# 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/android/submit-a-job.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.
