> 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

# How to Export an Authoritative Copy

An Authoritative Copy is the single, distinct, absolutely original version of a document. It is unique, identifiable, and unalterable without detection.

This topic describes how you can export an Authoritative Copy with the SOAP API using either Docusign WSDL with Visual Studio.

>

**Warning:** If you execute a direct Authoritative Copy export using the Docusign API , once the export is successfully acknowledged, it cannot be undone and **there is no way to reverse the API call**. Docusign cannot provide an Authoritative Copy if the exporter fails to retain it once it's been exported via call through the respective controls. You are required to acknowledge that if you elect to execute a direct Authoritative Copy export via the Docusign API, **you are solely responsible for the results of the export**, including loss, corruption, or destruction of the Authoritative Copy of the eDocument.

## Exporting with Connect vs with the SOAP API

Although you can export an Authoritative Copy with the SOAP API as described in this topic, Docusign strongly recommends that you use [Docusign Connect](https://support.docusign.com/s/document-item?language=en_US\&rsc_301\&bundleId=pik1583277475390\&topicId=ctv1583277395112.html&_LANG=enus) and Docusign partner [eOriginal](https://www.eoriginal.com/solutions/eoriginal-total-solution/) for exporting Authoritative Copy to a predefined eVault. [The Docusign Connect for eOriginal feature](https://support.docusign.com/s/document-item?language=en_US\&rsc_301\&bundleId=pik1583277475390\&topicId=tsn1583277394951.html&_LANG=enus) was designed for such a process.

However, Docusign understands that there may be times when using the SOAP API for exporting Authoritative Copy is necessary; this topic describes that process.

## Prerequisites

* **Your account must have access to the Authoritative Copy feature**. Contact Docusign Customer Support and ask that your API user be granted permission to export Authoritative Copies.
* **If you want to select which envelopes will record an Authoritative Copy**, add `"authoritativeCopy": "true"` to the envelope definition in your API call.
* **If you want all envelopes to use Authoritative Copy**, ask Docusign Customer Support to set the `"Auto Authoritative Copy:"` to `Enabled` on your account.

### Setup with WSDL or Visual Studio

#### Using Visual Studio

In a Visual Studio 2010 - 2019 using .NET Framework project, you can select **Project > Add Service Reference**. In the **Address**, type the URL to the WSDL file (for example, `https://demo.docusign.net/api/3.0/dsapi.asmx`).

Make sure the resulting app.config file looks similar to the example to the right, including the values for maxBufferSize. The example uses `DocusignSoapApi` as the name of the Service Reference.

**`Example VS app.config file`**

```xml title="Example VS app.config file"
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
    </startup>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="DSAPIServiceSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
                    <security mode="Transport" />
                </binding>
                <binding name="DSAPIServiceSoap1" />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://demo.docusign.net/api/3.0/dsapi.asmx"
                binding="basicHttpBinding" bindingConfiguration="DSAPIServiceSoap"
                contract="DocuSignSoapApi.DSAPIServiceSoap" name="DSAPIServiceSoap" />
        </client>
    </system.serviceModel>
</configuration>
```

#### Using Docusign WSDL

If your IDE supports importing WSDL files as a Web or Service Reference, the auto-generated classes can save work in deserializing the document bytes. Docusign recommends using this approach. Known working IDEs are Intelij IDEA and [Visual Studio](/docs/esign-soap-api/esign101/wsdls/using-wsdl-dotnet) 2010 - 2019 using .NET Framework. The .NET Core does not [correctly](https://stackoverflow.com/questions/57312648/what-happened-to-add-web-reference-in-visual-studio-2019) build the auto-generated classes..

## Step 1. Export the authoritative copies of the documents of a given envelope

Call the [ExportAuthoritativeCopy](/docs/esign-soap-api/reference/post-processing-group/exportauthoritativecopy) SOAP API endpoint, which returns an array of documents as encrypted bytes.

>

**Note:** The export is a one-time operation. The developer will need to ensure that this operation is very robust and that the files are safely and securely extracted from the response XML and stored during the entire operation. You should also ensure the absolute destruction of any encrypted files or keys once the decrypted files are secured. Rigorous testing in a Docusign demo account is required to ensure a robust solution before moving to production.

## Step 2. Acknowledge receipt of the authoritative copies

Once you have received the Authoritative Copies, use the following procedure to acknowledge receipt:

1. Assemble the returned documents into one byte array.
2. Set that byte array to a fixed-length array.
3. Hash the fixed-length array.
4. Call the [AcknowledgeAuthoritativeCopyExport](/docs/esign-soap-api/reference/post-processing-group/acknowledgeauthoritativecopyexport) API, passing in the hash value.
5. On success, a key to decrypt the documents is returned.

## Step 3. Decrypt the documents with the returned key

Finally, use the returned key to decrypt your documents.

Because your app will be handling sensitive information and some operations cannot be reversed, you must implement robust exception handling and success validation for every step of the export process.

## Code example

The code sample is a bare bones console application demonstrating the API calls to Docusign. This sample does not demonstrate the steps you need to implement for success validation and vaulting. Docusign Professional Services can assist with building a robust solution. You can engage professional services through your Docusign Sales representative.

[C# ConsoleAppDocusignSoap ](https://github.com/docusign/code-examples-soap/tree/master/AuthoritativeCopySOAPExample)