Sample code for 30+ languages & platforms
Go

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

Go
    success := false

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

    http := chilkat.NewHttp()

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

    // Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
    jsonToken := chilkat.NewJsonObject()
    // Load a previously obtained OAuth2 access token.
    success = jsonToken.LoadFile("qa_data/tokens/docusign.json")
    if success == false {
        fmt.Println(jsonToken.LastErrorText())
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        return
    }

    http.SetAuthToken(jsonToken.StringOf("access_token"))

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

    url := "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1"
    bd := chilkat.NewBinData()

    success = http.DownloadBd(url,bd)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        bd.DisposeBinData()
        return
    }

    respStatusCode := http.LastStatus()
    fmt.Println("Response Status Code = ", respStatusCode)
    if respStatusCode != 200 {
        fmt.Println("Response Header:")
        fmt.Println(http.LastResponseHeader())
        // The response body contains an error message.
        fmt.Println(*bd.GetString("utf-8"))
        fmt.Println("Failed.")
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        bd.DisposeBinData()
        return
    }

    // The response indicated success.
    // Get the filename from the Content-Disposition header and save to a file.
    mime := chilkat.NewMime()
    mime.LoadMime(http.LastResponseHeader())

    filename := mime.GetHeaderFieldAttribute("Content-Disposition","filename")
    fmt.Println("filename = ", *filename)

    sbPath := chilkat.NewStringBuilder()
    sbPath.Append("C:/aaworkarea/")
    sbPath.Append(*filename)
    success = bd.WriteFile(*sbPath.GetAsString())
    if success == false {
        fmt.Println("Failed to save to output file.")
    } else {
        fmt.Println("Wrote ", *sbPath.GetAsString())
    }


    http.DisposeHttp()
    jsonToken.DisposeJsonObject()
    bd.DisposeBinData()
    mime.DisposeMime()
    sbPath.DisposeStringBuilder()