Sample code for 30+ languages & platforms
Swift

DocuSign List Envelope Documents

See more DocuSign Examples

Retrieve a list of all documents within a specific envelope.

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

    // 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")

    let sbResponseBody = CkoStringBuilder()!
    success = http.quickGetSb(url: "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents", sbContent: sbResponseBody)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let jResp = CkoJsonObject()!
    jResp.loadSb(sb: sbResponseBody)
    jResp.emitCompact = false

    print("Response Body:")
    print("\(jResp.emit()!)")

    var respStatusCode: Int = http.lastStatus.intValue
    print("Response Status Code = \(respStatusCode)")
    if respStatusCode >= 400 {
        print("Response Header:")
        print("\(http.lastHeader!)")
        print("Failed.")
        return
    }

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {
    //   "envelopeId": "90d7e40a-b4bd-4ccd-bf38-c80e37954a13",
    //   "envelopeDocuments": [
    //     {
    //       "documentId": "1",
    //       "documentIdGuid": "ca1d3cc6-9bc3-48d6-a5d8-a85d9acdcde1",
    //       "name": "helloWorld.pdf",
    //       "type": "content",
    //       "uri": "/envelopes/90d7e40a-b4bd-4ccd-bf38-c80e37954a13/documents/1",
    //       "order": "1",
    //       "pages": [
    //         {
    //           "pageId": "fbf93a36-6b60-484d-94bd-ee3c08c0a546",
    //           "sequence": "1",
    //           "height": "842",
    //           "width": "595",
    //           "dpi": "72"
    //         }
    //       ],
    //       "availableDocumentTypes": [
    //         {
    //           "type": "electronic",
    //           "isDefault": "true"
    //         }
    //       ],
    //       "display": "inline",
    //       "includeInDownload": "true",
    //       "signerMustAcknowledge": "no_interaction",
    //       "templateRequired": "false",
    //       "authoritativeCopy": "false"
    //     },
    //     {
    //       "documentId": "certificate",
    //       "documentIdGuid": "7479a5de-8d91-44a2-bc33-b76a9ba0f6e2",
    //       "name": "Summary",
    //       "type": "summary",
    //       "uri": "/envelopes/90d7e40a-b4bd-4ccd-bf38-c80e37954a13/documents/certificate",
    //       "order": "999",
    //       "availableDocumentTypes": [
    //         {
    //           "type": "electronic",
    //           "isDefault": "true"
    //         }
    //       ],
    //       "display": "inline",
    //       "includeInDownload": "true",
    //       "signerMustAcknowledge": "no_interaction",
    //       "templateRequired": "false",
    //       "authoritativeCopy": "false"
    //     }
    //   ]
    // }

    // Sample code for parsing the JSON response...
    // Use the following online tool to generate parsing code from sample JSON:
    // Generate Parsing Code from JSON

    var documentId: String?
    var documentIdGuid: String?
    var name: String?
    var v_type: String?
    var uri: String?
    var order: String?
    var display: String?
    var includeInDownload: String?
    var signerMustAcknowledge: String?
    var templateRequired: String?
    var authoritativeCopy: String?
    var j: Int
    var count_j: Int
    var pageId: String?
    var sequence: String?
    var height: String?
    var width: String?
    var dpi: String?
    var isDefault: String?

    var envelopeId: String? = jResp.string(of: "envelopeId")
    var i: Int = 0
    var count_i: Int = jResp.size(ofArray: "envelopeDocuments").intValue
    while i < count_i {
        jResp.i = i
        documentId = jResp.string(of: "envelopeDocuments[i].documentId")
        documentIdGuid = jResp.string(of: "envelopeDocuments[i].documentIdGuid")
        name = jResp.string(of: "envelopeDocuments[i].name")
        v_type = jResp.string(of: "envelopeDocuments[i].type")
        uri = jResp.string(of: "envelopeDocuments[i].uri")
        order = jResp.string(of: "envelopeDocuments[i].order")
        display = jResp.string(of: "envelopeDocuments[i].display")
        includeInDownload = jResp.string(of: "envelopeDocuments[i].includeInDownload")
        signerMustAcknowledge = jResp.string(of: "envelopeDocuments[i].signerMustAcknowledge")
        templateRequired = jResp.string(of: "envelopeDocuments[i].templateRequired")
        authoritativeCopy = jResp.string(of: "envelopeDocuments[i].authoritativeCopy")
        j = 0
        count_j = jResp.size(ofArray: "envelopeDocuments[i].pages").intValue
        while j < count_j {
            jResp.j = j
            pageId = jResp.string(of: "envelopeDocuments[i].pages[j].pageId")
            sequence = jResp.string(of: "envelopeDocuments[i].pages[j].sequence")
            height = jResp.string(of: "envelopeDocuments[i].pages[j].height")
            width = jResp.string(of: "envelopeDocuments[i].pages[j].width")
            dpi = jResp.string(of: "envelopeDocuments[i].pages[j].dpi")
            j = j + 1
        }

        j = 0
        count_j = jResp.size(ofArray: "envelopeDocuments[i].availableDocumentTypes").intValue
        while j < count_j {
            jResp.j = j
            v_type = jResp.string(of: "envelopeDocuments[i].availableDocumentTypes[j].type")
            isDefault = jResp.string(of: "envelopeDocuments[i].availableDocumentTypes[j].isDefault")
            j = j + 1
        }

        i = i + 1
    }


}