> 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

# Choose OAuth Type

> Provides guidance for how to choose the right OAuth Grant for your integration

Docusign provides four flows for implementing OAuth:

* If each user of your integration will use a single system account to log in, you should use [JWT Grant](/platform/auth/jwt). Note that, when using JWT Grant to obtain an access token, you can still use elements of the other grants to obtain consent.
* If your integration will not use a single system account to log in, it should use [Public Authorization Code Grant](/platform/auth/authcode#public-authorization-code-grant)  or [Confidential Authorization Code Grant](/platform/auth/authcode#confidential-authorization-code-grant).
* A fourth flow, [Implicit Grant](/platform/auth/implicit), is supported for integrations that cannot secure a secret, but is not recommended. **Public Authorization Code Grant** should be used instead whenever possible.

Each of these flows has its own advantages, drawbacks, and is intended to support different types of integrations.

| If your integration...                                                                                                 | Recommended OAuth flow                                                                                                                                                                                                                | Reason                                                                                                                                                                                                                                                                   |
| ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Manages large numbers of users** via Docusign Admin...                                                               | [JWT Grant](/platform/auth/jwt)                                                                                                                                                                                                       | When used with [Docusign Admin](/docs/admin-api/admin101), JWT Grant enables you to obtain consent for all users within an organization’s domain simultaneously.                                                                                                         |
| **Uses a single system/organization user** for all users in your integration, rather than individual employee users... | [JWT Grant](/platform/auth/jwt)                                                                                                                                                                                                       | When used with [Docusign Admin](/docs/admin-api/admin101), the JWT Grant flow enables you to obtain consent on behalf of all users in an organization's domain. This enables your integration to avoid refresh token management and having to obtain consent frequently. |
| Uses a browser or client to make requests of a **web server**...                                                       | [JWT Grant](/platform/auth/jwt), [Confidential Authorization Code Grant](/platform/auth/authcode#confidential-authorization-code-grant) or [Public Authorization Code Grant](/platform/auth/authcode#public-authorization-code-grant) | Note that the Confidential Authorization Code Grant flow requires that your integration be able to store your client secret on a secure web server.                                                                                                                      |
| Is only able to use **local storage** or is otherwise unable to secure a secret key...                                 | [Public Authorization Code Grant](/platform/auth/authcode#public-authorization-code-grant) or [Implicit Grant](/platform/auth/implicit)                                                                                               | The Public Authorization Code Grant flow enables you to store your access token directly on a user’s device.                                                                                                                                                             |
| Must be as **secure as possible**...                                                                                   | [Confidential Authorization Code Grant](/platform/auth/authcode#confidential-authorization-code-grant) or [Public Authorization Code Grant](/platform/auth/authcode#public-authorization-code-grant)                                  | The Authorization Code Grant flows are the most secure options for implementing authentication.                                                                                                                                                                          |
| Should be as **easy to implement as possible**...                                                                      | [Public Authorization Code Grant](/platform/auth/authcode#public-authorization-code-grant)                                                                                                                                            | The Public Authorization Code Grant flow is the most straightforward general-use flow to implement for most integrations.                                                                                                                                                |

## Next steps

* Explore the details of how to obtain access tokens using each grant:

  * See how to get an access token using [Confidential Authorization Code Grant](/platform/auth/confidential-authcode-get-token)  or [Public Authorization Code Grant](/platform/auth/public-authcode-get-token).
  * See how to [get an access token with Implicit Grant](/platform/auth/implicit-get-token).
  * See how to [get an access token with JWT Grant](/platform/auth/jwt-get-token).
* Learn about options for [obtaining and revoking consent](/platform/auth/consent).