> For the complete documentation index, see [llms.txt](https://docs.autentique.com.br/api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.autentique.com.br/api/2/queries/resgatando-documentos.md).

# 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 %}
