> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dekasign.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Download completed signing PDF

> Requires a COMPLETED package within the app and mapped user private/custody scope. Returns FINAL_DOCUMENT_NOT_READY (409) before completion; a changed document returns DOCUMENT_CHANGED (409). Production reads require the retained production package proof.



## OpenAPI

````yaml /openapi.json get /api/v1/signature-packages/{id}/document
openapi: 3.0.3
info:
  title: DekaSign integration and session API
  version: '2026-10-28'
  description: >-
    Production APIs require an active paid plan, Production app/key, allowed
    scopes and enabled capabilities. Some design-management operations remain
    sandbox-only. Template authoring and human approval decisions are not
    delegated to API keys. Session routes use separate identity. This
    specification grants no access or capability activation.
servers:
  - url: https://{workspace}.dekasign.com
    description: Use the organization workspace authorized for your integration app.
    variables:
      workspace:
        default: your-workspace
security: []
paths:
  /api/v1/signature-packages/{id}/document:
    get:
      tags:
        - signature-packages
      summary: Download completed signing PDF
      description: >-
        Requires a COMPLETED package within the app and mapped user
        private/custody scope. Returns FINAL_DOCUMENT_NOT_READY (409) before
        completion; a changed document returns DOCUMENT_CHANGED (409).
        Production reads require the retained production package proof.
      operationId: get_signature_packages_id_document
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 150
          description: Workspace-scoped identifier.
        - name: X-Dekasign-Environment
          in: header
          required: true
          schema:
            type: string
            enum:
              - sandbox
              - production
      responses:
        '200':
          description: Current authorized result.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '400':
          description: Invalid operation or layout.
        '401':
          description: Invalid or expired credential/session.
        '403':
          description: Scope, environment, tenant or authority denied.
        '404':
          description: Not found or outside app scope.
        '409':
          description: >-
            Result not ready, integrity failure, changed version, or unavailable
            data-source configuration.
        '422':
          description: Invalid schema or required idempotency key.
        '429':
          description: Rate limited.
        '503':
          description: Environment capability disabled or service temporarily unavailable.
      security:
        - SandboxBearer: []
        - ProductionBearer: []
components:
  securitySchemes:
    SandboxBearer:
      type: http
      scheme: bearer
      description: Sandbox dks_test_ key, server-side only.
    ProductionBearer:
      type: http
      scheme: bearer
      description: Production dks_live_ key, server-side only.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.