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

# Verificar NFe

> Verifique se uma NFe está armazenada no GuardaNFe

## Objetivo

Este endpoint permite **validar se chaves de acesso** estão disponíveis nos servidores do GuardaNFe, indicando que as respectivas NF-e foram previamente armazenadas com sucesso.

<Info>
  **Segurança Garantida**

  A verificação é restrita às NF-e associadas à sua conta, garantindo confidencialidade dos documentos.
</Info>

## Endpoint

<api-endpoint method="post" url="/GuardaNFe/Checar" />

## Headers

<ParamField header="Content-Type" type="string" default="application/json">
  Tipo de conteúdo da requisição
</ParamField>

<ParamField header="X-API-KEY" type="string" required>
  Token de autenticação da API
</ParamField>

## Body Parameters

<ParamField body="chavesNFe" type="array" required>
  Lista de chaves de acesso das NF-e para verificação (44 caracteres cada)

  **Exemplo:** `["11220108333830000304550010000000881000001108"]`
</ParamField>

## Exemplos de Requisição

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.validanfe.com/GuardaNFe/Checar" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "X-API-KEY: SEU_TOKEN_AQUI" \
    -d '{
      "chavesNFe": [
        "11220108333830000304550010000000881000001108",
        "43210312345678000123450010000000201234567890"
      ]
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.validanfe.com/GuardaNFe/Checar', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Accept': 'application/json',
      'X-API-KEY': 'SEU_TOKEN_AQUI'
    },
    body: JSON.stringify({
      chavesNFe: [
        "11220108333830000304550010000000881000001108",
        "43210312345678000123450010000000201234567890"
      ]
    })
  });

  const resultado = await response.json();
  ```

  ```python Python theme={null}
  import requests
  import json

  url = "https://api.validanfe.com/GuardaNFe/Checar"
  headers = {
      "Content-Type": "application/json",
      "Accept": "application/json",
      "X-API-KEY": "SEU_TOKEN_AQUI"
  }

  data = {
      "chavesNFe": [
          "11220108333830000304550010000000881000001108",
          "43210312345678000123450010000000201234567890"
      ]
  }

  response = requests.post(url, headers=headers, data=json.dumps(data))
  resultado = response.json()
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init();

  $data = [
      "chavesNFe" => [
          "11220108333830000304550010000000881000001108",
          "43210312345678000123450010000000201234567890"
      ]
  ];

  curl_setopt($ch, CURLOPT_URL, 'https://api.validanfe.com/GuardaNFe/Checar');
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      'Content-Type: application/json',
      'Accept: application/json',
      'X-API-KEY: SEU_TOKEN_AQUI'
  ]);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

  $response = curl_exec($ch);
  $resultado = json_decode($response, true);

  curl_close($ch);
  ?>
  ```
</CodeGroup>

## Códigos de Resposta

<ResponseField name="200" type="Success">
  Verificação realizada com sucesso
</ResponseField>

<ResponseField name="400" type="Bad Request">
  Lista de chaves NF-e está vazia
</ResponseField>

<ResponseField name="401" type="Unauthorized">
  Token de autenticação ausente ou inválido
</ResponseField>

<ResponseField name="500" type="Internal Server Error">
  Erro ao verificar a existência dos arquivos
</ResponseField>

## Exemplos de Resposta

<CodeGroup>
  ```json 200 - Sucesso theme={null}
  {
    "11220108333830000304550010000000881000001108": { "exists": true },
    "43210312345678000123450010000000201234567890": { "exists": false }
  }
  ```

  ```json 400 - Bad Request theme={null}
  {
    "message": "A lista de chaves NF-e está vazia."
  }
  ```

  ```json 500 - Internal Server Error theme={null}
  {
    "message": "Erro ao verificar a existência dos arquivos.",
    "error": "Descrição detalhada do erro."
  }
  ```
</CodeGroup>

## Interpretando os Resultados

<CardGroup cols={2}>
  <Card title="exists: true" color="#16a34a">
    **NFe Encontrada**

    O arquivo XML está presente no GuardaNFe e pode ser acessado
  </Card>

  <Card title="exists: false" color="#dc2626">
    **NFe Não Encontrada**

    O arquivo não foi encontrado ou não pertence à sua conta
  </Card>
</CardGroup>

## Casos de Uso

<Accordion title="Verificação em Lote">
  Ideal para verificar o status de armazenamento de múltiplas NFe de uma só vez, otimizando o número de requisições.
</Accordion>

<Accordion title="Auditoria">
  Utilize para auditar quais NFe estão efetivamente armazenadas no GuardaNFe antes de gerar relatórios.
</Accordion>

<Accordion title="Integração de Sistemas">
  Integre com seus sistemas internos para verificar disponibilidade antes de solicitar downloads.
</Accordion>

<Warning>
  **Limitações**

  * Máximo de 100 chaves por requisição
  * Apenas NFe associadas à sua conta são verificadas
</Warning>

<Tip>
  **Performance**

  Para melhor performance, agrupe múltiplas chaves em uma única requisição ao invés de fazer múltiplas chamadas individuais.
</Tip>
