Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

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

loHttp = createobject("CkHttp")

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

// Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
loJsonToken = createobject("CkJsonObject")
// Load a previously obtained OAuth2 access token.
llSuccess = loJsonToken.LoadFile("qa_data/tokens/docusign.json")
if (llSuccess = .F.) then
    ? loJsonToken.LastErrorText
    release loHttp
    release loJsonToken
    return
endif

loHttp.AuthToken = loJsonToken.StringOf("access_token")

// Use your account ID and a valid envelopeId here:
loHttp.SetUrlVar("accountId","7f3f65ed-5e87-418d-94c1-92499ddc8252")
loHttp.SetUrlVar("envelopeId","90d7e40a-b4bd-4ccd-bf38-c80e37954a13")

lcUrl = "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1"
loBd = createobject("CkBinData")

llSuccess = loHttp.DownloadBd(lcUrl,loBd)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loJsonToken
    release loBd
    return
endif

lnRespStatusCode = loHttp.LastStatus
? "Response Status Code = " + str(lnRespStatusCode)
if (lnRespStatusCode <> 200) then
    ? "Response Header:"
    ? loHttp.LastResponseHeader
    // The response body contains an error message.
    ? loBd.GetString("utf-8")
    ? "Failed."
    release loHttp
    release loJsonToken
    release loBd
    return
endif

// The response indicated success.
// Get the filename from the Content-Disposition header and save to a file.
loMime = createobject("CkMime")
loMime.LoadMime(loHttp.LastResponseHeader)

lcFilename = loMime.GetHeaderFieldAttribute("Content-Disposition","filename")
? "filename = " + lcFilename

loSbPath = createobject("CkStringBuilder")
loSbPath.Append("C:/aaworkarea/")
loSbPath.Append(lcFilename)
llSuccess = loBd.WriteFile(loSbPath.GetAsString())
if (llSuccess = .F.) then
    ? "Failed to save to output file."
else
    ? "Wrote " + loSbPath.GetAsString()
endif



release loHttp
release loJsonToken
release loBd
release loMime
release loSbPath