Sample code for 30+ languages & platforms
Swift

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

Swift

func chilkatTest() {
    var success: Bool = false

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

    let http = CkoHttp()!

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

    // Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
    let jsonToken = CkoJsonObject()!
    // Load a previously obtained OAuth2 access token.
    success = jsonToken.loadFile(path: "qa_data/tokens/docusign.json")
    if success == false {
        print("\(jsonToken.lastErrorText!)")
        return
    }

    http.authToken = jsonToken.string(of: "access_token")

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

    var url: String? = "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1"
    let bd = CkoBinData()!

    success = http.downloadBd(url: url, binData: bd)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    var respStatusCode: Int = http.lastStatus.intValue
    print("Response Status Code = \(respStatusCode)")
    if respStatusCode != 200 {
        print("Response Header:")
        print("\(http.lastResponseHeader!)")
        // The response body contains an error message.
        print("\(bd.getString(charset: "utf-8")!)")
        print("Failed.")
        return
    }

    // The response indicated success.
    // Get the filename from the Content-Disposition header and save to a file.
    let mime = CkoMime()!
    mime.load(mimeText: http.lastResponseHeader)

    var filename: String? = mime.getHeaderFieldAttribute(name: "Content-Disposition", attrName: "filename")
    print("filename = \(filename!)")

    let sbPath = CkoStringBuilder()!
    sbPath.append(value: "C:/aaworkarea/")
    sbPath.append(value: filename)
    success = bd.writeFile(path: sbPath.getAsString())
    if success == false {
        print("Failed to save to output file.")
    }
    else {
        print("Wrote \(sbPath.getAsString()!)")
    }


}