Sample code for 30+ languages & platforms
Dart

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

Dart
import 'package:chilkat/chilkat.dart';

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

  final http = CkHttp();

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

  // Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
  final jsonToken = CkJsonObject();
  // Load a previously obtained OAuth2 access token.
  try {
    jsonToken.loadFile('qa_data/tokens/docusign.json');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  http.authToken = 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');

  final url = 'https://demo.docusign.net/restapi/v2.1/accounts/{\$accountId}/envelopes/{\$envelopeId}/documents/1';
  final bd = CkBinData();

  try {
    http.downloadBd(url, bd);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final respStatusCode = http.lastStatus;
  print('Response Status Code = $respStatusCode');
  if (respStatusCode != 200) {
    print('Response Header:');
    print(http.lastResponseHeader);
    // The response body contains an error message.
    print(bd.getString('utf-8'));
    print('Failed.');
    return;
  }

  // The response indicated success.
  // Get the filename from the Content-Disposition header and save to a file.
  final mime = CkMime();
  mime.loadMime(http.lastResponseHeader);

  final filename = mime.getHeaderFieldAttribute('Content-Disposition', 'filename');
  print('filename = $filename');

  final sbPath = CkStringBuilder();
  sbPath.append('C:/aaworkarea/');
  sbPath.append(filename);
  try {
    bd.writeFile(sbPath.getAsString());
    print('Wrote ${sbPath.getAsString()}');
  } on ChilkatException {
    print('Failed to save to output file.');
  }
}