> 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 # Build an extension app > Get an overview of the steps to build an extension app. This topic covers the general steps to build an extension app. Links to details for each step are provided in the sections below. The steps are: 1. [Create a developer account](/extension-apps/build-an-extension-app#step-1-create-a-developer-account) 2. [Determine which extensions to use](/extension-apps/build-an-extension-app#step-2-determine-which-extensions-to-use) 3. [Confirm API service details](/extension-apps/build-an-extension-app#step-3-confirm-api-service-details) 4. [Set up your IT infrastructure](/extension-apps/build-an-extension-app#step-4-set-up-your-it-infrastructure) 5. [Determine your extension app's availability](/extension-apps/build-an-extension-app#step-5-determine-your-extension-apps-availability) 6. [Register your extension app](/extension-apps/build-an-extension-app#step-6-register-your-extension-app) 7. [Test your extension app](/extension-apps/build-an-extension-app#step-7-test-your-extension-app) 8. [Publish your extension app to the App Center](/extension-apps/build-an-extension-app#step-8-publish-your-extension-app-to-the-app-center) 9. [Update extension app registration details](/extension-apps/build-an-extension-app#step-9-update-extension-app-registration-details) ## Step 1. Create a developer account A free Docusign [developer account](https://www.docusign.com/developers/sandbox) gives you access to the tools you’ll need to register, test, and publish extension apps. All users under your account who have admin permissions can use the [Developer Console](/extension-apps/developer-console-overview). ## Step 2. Determine which extensions to use Review the [supported extensions](/extension-apps/extension-apps-101/supported-extensions) so that you can decide which ones to use in your extension app to meet your business needs. Docusign currently supports extensions that: * Import files from and write files to a cloud storage system * Export data to tabular format files in a cloud storage system * Read data from and write data to a system of record * Import files from and write files to a system of record * Verify different types of data Each extension can be triggered from defined points in Docusign agreement processes, known as [extension points](/extension-apps/extension-apps-101/concepts/extensions-and-extension-points#extension-points). Understanding which extension points are available enables you to plan for how your extension app will be used. ## Step 3. Confirm API service details An extension app calls an API service to perform a function, such as verifying customer data or writing files to cloud storage. You’ll need to configure your extension app to connect to the API endpoints that provide this functionality. From there, the API can provide all the business logic and/or integrate with other systems. You’ll also need to configure the extension app to obtain [authorization](/extension-apps/build-an-extension-app/it-infrastructure/authorization) from the API service or an identity provider. You'll need this information to configure your extension app: * URLs for the API endpoints that your extension app will call. See [Action schema](/extension-apps/extension-app-reference/app-manifest-reference/action) for information. * Parameters that the API requires in requests to its endpoints, as well as the parameters that it returns in the responses. See [Extension contracts](/extension-apps/extension-app-reference/extension-contracts) for information. * [Authorization](/extension-apps/build-an-extension-app/it-infrastructure/authorization) details for the API service if your extension app will obtain authorization directly from that service, or for the identity provider if your extension app will use an identity provider for authorization. These details include an authorization URL, token URL, client ID, client secret, and scopes. See [Connection schema](/extension-apps/extension-app-reference/app-manifest-reference/connection) for information. ## Step 4. Set up your IT infrastructure For an extension app to obtain authorization and send requests to an API service, the following IT infrastructure must be in place: * [API proxy](/extension-apps/build-an-extension-app/it-infrastructure/api-proxy): You must build an API proxy if requests to and responses from the API service do not conform to the Docusign action contract schema. You can access the action contracts for each extension from the [Extension contracts](/extension-apps/extension-app-reference/extension-contracts) page. * [Authorization](/extension-apps/build-an-extension-app/it-infrastructure/authorization): Configuration changes may be needed for the API service or identity provider to make sure that Docusign can obtain permission to access API resources. * [Network](/extension-apps/build-an-extension-app/it-infrastructure/network-configuration): Firewall and ad blocker configuration changes may be needed to make sure that Docusign can send requests to the API service, and to make sure that your users can install your extension app in the [Docusign App Center](/extension-apps/extension-apps-101/app-center). See [Set up your IT infrastructure](/extension-apps/build-an-extension-app/it-infrastructure) for details. ## Step 5. Determine your extension app's availability Two features of extension apps enable you to control who can access your extension app after you publish it. If you are a Docusign partner, you can create a *public extension app*, which will be available on production to users under all Docusign accounts. Alternatively, if you are not a partner, you can create a *private extension app*, which will be available on production only to users under accounts that you specify. See [Choosing private distribution instead of public](/extension-apps/extension-apps-101/choosing-private-distribution) for details, or [Join now](https://partners.docusign.com/s/join-now) for details on how to join the Docusign partner program. In addition, you can choose the regions in which your extension app will be available for production use. Users outside your selected regions won’t be able to install your extension app in the production App Center. See [Globalization](/extension-apps/extension-apps-101/globalization) for details. After you have published an extension app to make it live, you cannot change its distribution type (public or private) or remove regions where it is currently available. ## Step 6. Register your extension app Registering your extension app supplies Docusign with the details required to obtain [authorization](/extension-apps/build-an-extension-app/it-infrastructure/authorization) from your external API service or identity provider and send requests to the API endpoints. Also during the registration process, you provide metadata that is displayed in the [Docusign App Center](/extension-apps/extension-apps-101/app-center) listing for your extension app. You have two options for registering your extension apps using the Developer Console. You can use a guided web-based interface that walks you through the process of supplying the required details. Or you can manually populate the details in a JSON extension app manifest file. See [Register an extension app](/extension-apps/build-an-extension-app/register) for details about the two options. ## Step 7. Test your extension app You can [test your extension app](/extension-apps/build-an-extension-app/test) in the Developer Console by launching built-in test functions. They enable you to confirm that: * Your extension app can use your account credentials to obtain authorization from the API service or identity provider. * Your extension app can send a request to each API or proxy endpoint and process the response. * You can install the extension app to your Docusign account. You can also run a test to confirm that the extension app works correctly when invoked from an envelope or workflow. See [Functional tests](/extension-apps/build-an-extension-app/test/functional-tests) for details. ## Step 8. Publish your extension app to the App Center Once you have successfully tested your extension app, you can use the Developer Console to [submit it for review](/extension-apps/build-an-extension-app/publish). The review process evaluates business, technical, security, and functional aspects of your extension app. See [App Center publishing guidelines](/extension-apps/build-an-extension-app/publish/guidelines) for more information about the evaluation. Your extension app must pass review before you can publish it to the [Docusign App Center](/extension-apps/extension-apps-101/app-center). Only published extension apps can be used in production. You’ll be notified of any issues that Docusign finds during the review, receive guidance on how to correct them, and be able to resubmit the extension app for review after making the updates. After a successful review, your extension app will appear in **Approved** status in the Developer Console. You can then publish it to the App Center, which makes it available for Docusign users to install and use in production envelopes and workflows. ## Step 9. Update extension app registration details You may need to [update extension app registration details](/extension-apps/build-an-extension-app/update-registration) to address changes in the API service that the app calls, to meet authorization requirements, to accommodate different use cases in the Docusign agreement process, or to update the extension app's display information in the App Center. You can update the registration details via a form-based UI or by editing the extension app manifest. Updating a published extension app's registration details creates a new version, which must pass a Docusign review before it can be published to the App Center. See [Extension app versioning](/extension-apps/build-an-extension-app/versioning) to learn more about managing versions of your extension app. ## Next steps * Get an overview of your options to [register an extension app](/extension-apps/build-an-extension-app/register). * Learn about the process to [test an extension app](/extension-apps/build-an-extension-app/test). * Find out how to [publish an extension app](/extension-apps/build-an-extension-app/publish). * View a [dashboard](/extension-apps/build-an-extension-app/monitor-usage) that displays extension app usage data. > Get an overview of the steps to build an extension app. ## Docs - [Example extension app use cases](https://developers.docusign.com/extension-apps/build-an-extension-app/example-use-case.md): Explore example extension app use cases and learn how extension apps can help streamline your workflow. - [Set up your IT infrastructure](https://developers.docusign.com/extension-apps/build-an-extension-app/it-infrastructure.md): Learn about setup information for the types of services to which extension apps will send requests. - [API proxy](https://developers.docusign.com/extension-apps/build-an-extension-app/it-infrastructure/api-proxy.md): Get an overview of a component that serves as an intermediary between a Docusign extension app and the third-party API service to which it sends requests. - [Authorization](https://developers.docusign.com/extension-apps/build-an-extension-app/it-infrastructure/authorization.md): Get an overview of the process by which an extension app obtains authorization to access resources in a third-party service. - [Network configuration](https://developers.docusign.com/extension-apps/build-an-extension-app/it-infrastructure/network-configuration.md): Learn about network setup required to ensure that Docusign can communicate successfully with your platform. - [Register an extension app](https://developers.docusign.com/extension-apps/build-an-extension-app/register.md): Learn how to supply Docusign with technical and descriptive information about an extension app. - [Use a form to register an extension app](https://developers.docusign.com/extension-apps/build-an-extension-app/register/use-form.md): Learn how to register an extension app using a guided form-based UI. - [Update integration details](https://developers.docusign.com/extension-apps/build-an-extension-app/register/use-form/integration-details.md): Learn how to define extension app settings required to obtain authorization and connect to endpoints in the external API service. - [Update App Center listing](https://developers.docusign.com/extension-apps/build-an-extension-app/register/use-form/app-center-listing.md): Learn how to define the text and images that appear in an extension app listing in the Docusign App Center. - [Use a manifest file to register an extension app](https://developers.docusign.com/extension-apps/build-an-extension-app/register/use-manifest.md): This guide describes the steps for registering an extension app by building a JSON app manifest file. - [Test an extension app](https://developers.docusign.com/extension-apps/build-an-extension-app/test.md): Learn how to verify that your extension app has been configured correctly. - [Integration tests](https://developers.docusign.com/extension-apps/build-an-extension-app/test/integration-tests.md): Learn how to verify that an extension app can obtain authorization, send requests to a third-party API, and process the responses. - [Functional tests](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests.md): Learn how to verify that an extension app works as expected when invoked from a Docusign envelope or workflow. - [Connected fields extension envelope test](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/connected-fields-envelope.md): Learn how to set up and execute a functional test that invokes a connected fields extension from an eSignature envelope. - [Data IO extension workflow test](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/data-io-workflow.md): Learn how to test a data IO extension in a workflow. - [Data verification extension envelope test](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/data-verification-envelope.md): Learn how to test a data verification extension in an envelope. - [File input cloud storage extension Agreement Manager test](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/file-input-cloud-storage-agreement-manager.md): Test a file input from cloud storage extension app with Docusign Agreement Manager. - [File output cloud storage extension workflow test](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/file-output-cloud-storage-workflow.md): Learn how to test a file output cloud storage extension from a Maestro workflow. - [File output system of record test: An event triggers the workflow (beta)](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/file-output-system-of-record-event-triggers-workflow.md): Learn how to test a file output system of record extension from a Maestro workflow that that's triggered by an event. - [File output system of record test: Workflow step creates envelopes (beta)](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/file-output-system-of-record-workflow-step-creates-envelopes.md): Learn how to test a file output system of record extension from a Maestro workflow in which envelopes are created by a workflow step. - [File output tabular format extension workflow test](https://developers.docusign.com/extension-apps/build-an-extension-app/test/functional-tests/file-output-tabular-format-workflow.md): Learn how to test a file output tabular format extension from a Maestro workflow. - [App Center preview](https://developers.docusign.com/extension-apps/build-an-extension-app/test/app-center-preview.md): Learn how to check details that will appear when App Center users display your extension app's information. - [Update an extension app registration](https://developers.docusign.com/extension-apps/build-an-extension-app/update-registration.md): Learn how to update an extension app's technical or descriptive information that is registered with Docusign. - [Use a form to update a registration](https://developers.docusign.com/extension-apps/build-an-extension-app/update-registration/use-form.md): Learn how to update an extension app registration using a form. - [Use a manifest file to update a registration](https://developers.docusign.com/extension-apps/build-an-extension-app/update-registration/use-manifest.md): This guide describes the steps for updating an extension app registration by editing a JSON app manifest file. - [Delete an extension app](https://developers.docusign.com/extension-apps/build-an-extension-app/delete.md): Describes conditions and steps to deleting an extension app. - [Publish an extension app to the Docusign App Center](https://developers.docusign.com/extension-apps/build-an-extension-app/publish.md): Learn how to publish your extension app to the Docusign App Center - [App Center publishing guidelines](https://developers.docusign.com/extension-apps/build-an-extension-app/publish/guidelines.md): See the guidelines and review criteria for publishing your extension app to the Docusign App Center. - [Monitor extension app usage](https://developers.docusign.com/extension-apps/build-an-extension-app/monitor-usage.md): See how many Docusign accounts have installed your extension app. - [Extension app versioning](https://developers.docusign.com/extension-apps/build-an-extension-app/versioning.md): Learn how to update your extension app by creating new versions, and find out how new versions are distributed to your customers. - [Extension app status and distribution](https://developers.docusign.com/extension-apps/build-an-extension-app/status.md): Learn about two types of status associated with extension apps.