> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Android SDK core interfaces

> The Android SDK core interfaces are methods that you call to perform basic tasks.

The Android SDK provides a set of core interfaces that are used with all custom integrations. These core interfaces are methods that you call to perform basic tasks, such as initializing the SDK, [authenticating](/platform/auth) and logging into a Docusign account within your app, and working with [envelopes and templates](/platform/concepts).

Before beginning the development of your app with the Android SDK, you will need to create a [Docusign developer account](https://www.docusign.com/developers/sandbox), if you don’t already have one.

The core interfaces listed in this topic are intended to highlight the most common ones. However, there are many additional classes and methods available in the Android SDK. Refer to the [SDK reference](https://docusign.github.io/mobile-android-sdk/)  for a complete listing of classes and methods. To learn how to write code to use these core interfaces, see  [How-to guides](/docs/mobile-sdks/android-sdk/how-to).

## SDK initialization

Before you can call any Android SDK method, you will need to initialize the SDK by calling the [init](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk/-docu-sign/-companion/init.html) method of the [Docusign](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk/-docu-sign/index.html) class. The `init` method requires several OAuth parameters to be passed in. You will need to create and configure an app in the [Apps and Keys](https://admindemo.docusign.com/authenticate?goTo=appsAndKeys) page in your account to obtain these parameters. See [Authenticate](/platform/auth) to learn more about OAuth and Docusign authentication.

To learn how to initialize the Android SDK, see [How to log in to Docusign from your app](/docs/mobile-sdks/android-sdk/how-to/log-in).

## Authentication and login

After you initialize the Android SDK, before you make any calls, your mobile app needs to authenticate with the Docusign platform and log in to your account using OAuth 2.0.

For your app to authenticate and log in with the Android SDK, call the [login](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-authentication-delegate/login.html) method of the [DSAuthenticationDelegate](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-authentication-delegate/index.html) class. The `login` method requires several OAuth parameters to be passed in. You will need to create and configure an app in the [Apps and Keys](https://admindemo.docusign.com/authenticate?goTo=appsAndKeys) page in your account to obtain these parameters. See [Authenticate](/platform/auth) to learn more about OAuth and Docusign authentication.

To learn how to authenticate and log in, see [How to log in to Docusign from your app](/docs/mobile-sdks/android-sdk/how-to/log-in).

## Template caching

If you have created templates in your account by using the Docusign web UI, you can download and cache any of them on a mobile device using the Android SDK. This enables offline scenarios to still take advantage of the templates you have created, even with no internet connectivity. To learn about templates and how to create them in your Docusign account, see [Create Templates](https://support.docusign.com/s/document-item?language=en_US\&rsc_301\&bundleId=xry1643227563338\&topicId=uab1578456394214.html&_LANG=enus).

> **Note**: Before moving your mobile app to the production environment using [Go-Live](/docs/mobile-sdks/android-sdk/go-live), create and test your templates in your developer account. Your app cannot locate the templates in your production account from your developer account.

To cache a template with the Android SDK, call the [cacheTemplate](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-template-delegate/cache-template.html) method of the [DSTemplateDelegate](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-template-delegate/index.html) class. The `cacheTemplate` method requires the GUID template ID value of the specific template to cache. To learn how to retrieve the ID value of a template, see [Locate a Template ID](https://support.docusign.com/s/document-item?language=en_US\&rsc_301\&bundleId=xry1643227563338\&topicId=yww1578456609051.html&_LANG=enus).

To learn how to cache templates, see Step 2 of [How to create an envelope for offline signing (from a template)](/docs/mobile-sdks/android-sdk/how-to/offline-signing-template).

## Template sending and signing

If you have created templates in your account by using the Docusign web UI, you can use those templates to create envelopes and send requests for signature. To learn about templates and how to create them in your Docusign account, see [Create Templates](https://support.docusign.com/s/document-item?language=en_US\&rsc_301\&bundleId=xry1643227563338\&topicId=uab1578456394214.html&_LANG=enus).

> **Note**: Before moving your mobile app to the production environment using [Go-Live](/docs/mobile-sdks/android-sdk/go-live), create and test your templates in your developer account. Your app cannot locate the templates in your production account from your developer account.

To send a signature request using a template with the Android SDK, call the [useTemplateOffline](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-template-delegate/use-template-offline.html) method of the [DSTemplateDelegate](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-template-delegate/index.html) class, which requires the GUID template ID value of the specific template to use. To learn how to retrieve the ID value of a template, see [Locate a Template ID](https://support.docusign.com/s/document-item?language=en_US\&rsc_301\&bundleId=xry1643227563338\&topicId=yww1578456609051.html&_LANG=enus).

To learn how to create an envelope from a template, see [How to create an envelope for offline signing (from a template)](/docs/mobile-sdks/android-sdk/how-to/offline-signing-template) .

## Envelope creation and signing

You don’t need to have templates created in your account to be able to send documents for signature. You can create an envelope, specify documents in the envelope, the recipients for those documents, and the tags within those documents all from within your mobile code using the Android SDK. See [Docusign objects](/platform/concepts) to learn about these concepts..

To create an envelope to send a signature request without using a template with the Android SDK, call the [composeAndSendEnvelope](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-envelope-delegate/compose-and-send-envelope.html) method of the [DSEnvelopeDelegate](https://docusign.github.io/mobile-android-sdk/sdk/com.docusign.androidsdk.delegates/-d-s-envelope-delegate/index.html) class.

To learn how to create an envelope without a template, see [How to create an envelope for offline signing (PDF)](/docs/mobile-sdks/android-sdk/how-to/offline-signing-pdf).

## Call the eSignature REST API directly

The Android SDK provides methods that you can use in your app for many common tasks. If you want to incorporate API functionality that hasn’t been implemented as an SDK method, you can call the [eSignature REST API](/docs/esign-rest-api/reference) directly from the SDK. The SDK includes a module that enables you to supply parameters to pass in a request to an API endpoint, so you don’t have to build an API definition, methods, and parameters. The SDK also parses the response and returns a JSON object.

For sample code for calling the eSignature REST API directly from the SDK, see:

* [How to make a direct API call](/docs/mobile-sdks/android-sdk/how-to/direct-api-calls)
* The [ESign REST API invocation from SDK](https://github.com/docusign/mobile-android-sdk/#esign-rest-api-invocation-from-sdk) section of the README.md file