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

# Obter documento assinado (admin)

> Retorna URL assinada para download do PDF final assinado (lado admin/operador).

Retorna uma URL assinada (válida por 15 minutos) para download do PDF final assinado. Esta é a versão **admin/operador** — signatários devem usar [`GET /v1/sign/:sessionToken/signed-document`](/plataforma/assinatura-digital/api/get-sign-session-signed-document) em vez disso.

## Parâmetros

<ParamField path="uuid" type="string" required>
  UUID do envelope.
</ParamField>

## Respostas

<ResponseField name="envelopeUuid" type="string">
  UUID do envelope.
</ResponseField>

<ResponseField name="standardName" type="string">
  Padrão de assinatura: `PAdES` ou `Eletronic`.
</ResponseField>

<ResponseField name="signedAt" type="string">
  Timestamp da última assinatura (ISO 8601).
</ResponseField>

<ResponseField name="signedHashSha256" type="string">
  Hash SHA-256 do conteúdo assinado (para integridade).
</ResponseField>

<ResponseField name="sizeBytes" type="integer">
  Tamanho do PDF assinado em bytes.
</ResponseField>

<ResponseField name="signedFileUrl" type="string">
  URL assinada para download. **Válida por apenas 15 minutos.**
</ResponseField>

<ResponseField name="signedFileUrlExpiresAt" type="string">
  Timestamp de expiração da URL (ISO 8601).
</ResponseField>

## Erros

Veja [Autenticação e erros](/plataforma/assinatura-digital/api/erros-e-autenticacao).

* **401**: API key/Bearer token inválido.
* **404**: Envelope não encontrado.
* **409**: Envelope ainda não finalizado (sem assinatura completa).

<ResponseExample>
  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "envelopeUuid": "550e8400-e29b-41d4-a716-446655440000",
    "standardName": "PAdES",
    "signedAt": "2025-07-27T15:45:30.000Z",
    "signedHashSha256": "abc123def456ghi789jkl...",
    "sizeBytes": 275000,
    "signedFileUrl": "https://storage.googleapis.com/bucket/signed-550e8400.pdf?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=...",
    "signedFileUrlExpiresAt": "2025-07-27T16:00:30.000Z"
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 409 Conflict
  Content-Type: application/json

  {
    "statusCode": 409,
    "message": "Envelope not finalized"
  }
  ```
</ResponseExample>

## Exemplo

```bash theme={"theme":"catppuccin-latte"}
curl -X GET "https://signer.vcc-service.com/v1/envelopes/550e8400-e29b-41d4-a716-446655440000/signed-document" \
  -H "x-api-key: YOUR_API_KEY"

# Salvar o PDF em um arquivo
curl -X GET "https://signer.vcc-service.com/v1/envelopes/550e8400-e29b-41d4-a716-446655440000/signed-document" \
  -H "x-api-key: YOUR_API_KEY" \
  | jq -r '.signedFileUrl' \
  | xargs curl -o documento-assinado.pdf
```

## Dica importante

A URL expira em **15 minutos**. Se precisar de uma URL nova, chame este endpoint novamente.

## Relacionado

* [`GET /v1/sign/:sessionToken/signed-document`](/plataforma/assinatura-digital/api/get-sign-session-signed-document) — versão do signatário (escopo com sessionToken)
* [`GET /v1/envelopes/:uuid`](/plataforma/assinatura-digital/api/get-envelope-by-id) — detalhe geral, inclui campo `signature` com URL assinada também
