# Resgatando Documentos

{% hint style="warning" %}
Evite utilizar estes métodos para consultar o status das assinaturas frequentemente. Os [*webhooks*](/api/2/integracao/webhooks-1.md) são uma forma mais rápida e eficiente de fazer isso (e o nosso *backend* agradece :sweat\_smile: )
{% endhint %}

### Resgatando um documento específico

No [Altair](https://altair.autentique.com.br), você pode testar com o item **Resgatar documento** da *collection* pronta. Não esqueça de completar a *query* com o ID de um documento existente para buscar:

```graphql
# Se copiar a query, lembre de remover os comentários

query {
  document(id: "ID_DO_DOCUMENTO") {
    id
    name
    refusable
    sortable
    created_at
    files { original signed pades }
    signatures {
      public_id
      name
      email
      created_at
      action { name }
      link { short_link } # Link de assinatura se signatário for adicionado por "name" ao invés de "email"
      user { id name email phone }
      user_data { name email phone } # Dados relacionados ao lock_user_data na criação do documento
      email_events {
        sent # Timestamp de confirmação de envio do email
        opened # Timestamp abertura do email (pode não registrar em alguns clientes de email)
        delivered # Timestamp de confirmação do recebimento do email no cliente
        refused # Timestamp de erro no envio do email
        reason # Mensagem de erro retornada ao ocorrer erro no envio
      }
      viewed { ...event } # Quando o signatário visualizar
      signed { ...event } # Quando o signatário assinar
      rejected { ...event } # Quando o signatário rejeitar
      signed_unapproved { ...event } # Quando signatário assinar, mas pendente de aprovação biométrica
      biometric_approved { ...event } # Quando biometria do signatário que estiver pendente de aprovação for aprovada
      biometric_rejected { ...event } # Quando biometria do signatário que estiver pendente de aprovação for rejeitada
    }
  }
}

fragment event on Event {
  ip
  port
  reason
  created_at
  geolocation {
    country
    countryISO
    state
    stateISO
    city
    zipcode
    latitude
    longitude
  }
}
```

Você pode conferir o resultado direto no [Altair](https://altair.autentique.com.br):

![](/files/-LzJCKOUcsuOLiDHMkZW)

Da mesma forma, você pode usar *fragments* como uma forma de evitar repetição nas *queries* com o GraphQL.

Você também pode consultar vários documentos ao mesmo tempo:

```graphql
query {
  primeiro: document(id: "ID_DO_DOCUMENTO_1") { name }
  segundo: document(id: "ID_DO_DOCUMENTO_2") { name }
  terceiro: document(id: "ID_DO_DOCUMENTO_3") { name }
}
```

![](/files/-LzJClNbpPtWIEyg356R)

E, assim como mostra na imagem acima, você também pode nomear as *queries*. (OBS: O nome não pode conter somente números)

### Listando documentos

Também é possível retornar páginas contendo múltiplos documentos:

```graphql
query {
  documents(limit: 60, page: 1) {
    total
    data {
      id
      name
      refusable
      sortable
      created_at
      signatures {
        public_id
        name
        email
        created_at
        action { name }
        link { short_link }
        user { id name email }
        viewed { created_at }
        signed { created_at }
        rejected { created_at }
      }
      files { original signed }
    }
  }
}
```

![](/files/-LzJCucTnPOFhIZZOCuC)

#### Resgatando documentos de uma pasta

Também é possível resgatar os documentos contidos em uma pasta:

```graphql
query{
  documentsByFolder(folder_id: "ID_DA_PASTA", limit: 60, page: 1) {
    data {
      id
      name
      qualified
      sandbox
      created_at
      deleted_at
    }
    has_more_pages
  }
}
```

A *query* em si é praticamente igual à de listar documentos, a única diferença é que pode-se especificar um id de uma pasta para realizar a busca. As informações retornadas também são do mesmo tipo que a requisição anterior.

<figure><img src="/files/gRSZr8hifLOG5JWggqNB" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Você pode conferir o que é cada um desses parâmetros direto na documentação completa da API GraphQL, no menu Docs do [Altair](https://altair.autentique.com.br). Se você não sabe como fazer isso, confira o nosso tutorial em [Usando o Altair](/api/2/integracao/altair.md)
{% endhint %}

{% hint style="info" %}
Se o Altair não te ajuda para integrar com a API, confira alguns exemplos de como fazer essas requisições de outra forma: <https://graphql.org/graphql-js/graphql-clients/>
{% endhint %}

{% file src="/files/-M03o9cE5QB3vLoPUlzJ" %}
Para importar e usar no Postman
{% endfile %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.autentique.com.br/api/2/queries/resgatando-documentos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
