Sample code for 30+ languages & platforms
Tcl

DocuSign Download Envelope Document (PDF)

See more DocuSign Examples

Retrieves the specified document from the envelope. The response body of this method is the PDF file as a byte stream. You can get the file name and document ID from the response's Content-Disposition header.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set http [new_CkHttp]

# Implements the following HTTP request:
# GET /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/1

# Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
set jsonToken [new_CkJsonObject]

# Load a previously obtained OAuth2 access token.
set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/docusign.json"]
if {$success == 0} then {
    puts [CkJsonObject_lastErrorText $jsonToken]
    delete_CkHttp $http
    delete_CkJsonObject $jsonToken
    exit
}

CkHttp_put_AuthToken $http [CkJsonObject_stringOf $jsonToken "access_token"]

# Use your account ID and a valid envelopeId here:
CkHttp_SetUrlVar $http "accountId" "7f3f65ed-5e87-418d-94c1-92499ddc8252"
CkHttp_SetUrlVar $http "envelopeId" "90d7e40a-b4bd-4ccd-bf38-c80e37954a13"

set url "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1"
set bd [new_CkBinData]

set success [CkHttp_DownloadBd $http $url $bd]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $jsonToken
    delete_CkBinData $bd
    exit
}

set respStatusCode [CkHttp_get_LastStatus $http]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode != 200} then {
    puts "Response Header:"
    puts [CkHttp_lastResponseHeader $http]
    # The response body contains an error message.
    puts [CkBinData_getString $bd utf-8]
    puts "Failed."
    delete_CkHttp $http
    delete_CkJsonObject $jsonToken
    delete_CkBinData $bd
    exit
}

# The response indicated success.
# Get the filename from the Content-Disposition header and save to a file.
set mime [new_CkMime]

CkMime_LoadMime $mime [CkHttp_lastResponseHeader $http]

set filename [CkMime_getHeaderFieldAttribute $mime "Content-Disposition" "filename"]
puts "filename = $filename"

set sbPath [new_CkStringBuilder]

CkStringBuilder_Append $sbPath "C:/aaworkarea/"
CkStringBuilder_Append $sbPath $filename
set success [CkBinData_WriteFile $bd [CkStringBuilder_getAsString $sbPath]]
if {$success == 0} then {
    puts "Failed to save to output file."
} else {
    puts "Wrote [CkStringBuilder_getAsString $sbPath]"
}


delete_CkHttp $http
delete_CkJsonObject $jsonToken
delete_CkBinData $bd
delete_CkMime $mime
delete_CkStringBuilder $sbPath