# Listar rejeições

> Lista o catálogo de rejeições SEFAZ de NF-e com busca textual e filtro por categoria.

URL: https://docs.fiscalapi.com.br/docs/rejeicoes/listar-rejeicoes


`GET&#x60; &#x2A;*`/api/v1/rejeicoes`**

Retorna o catálogo de rejeições SEFAZ de NF-e com busca textual e filtro por categoria. Cada item traz o código numérico, o motivo oficial e a categoria. Use o endpoint de [detalhe](/docs/rejeicoes/consultar-rejeicao) para obter causas e passos de resolução.

<Callout type="info">
  Cada rejeição tem uma página pública no blog (campo `url_blog`) com explicação em linguagem simples. O endpoint documentado nesta página exige API key; para uso sem chave existe a variante pública `GET /api/v1/public/rejeicoes` (rate limit 30/min por IP).
</Callout>

## ## Autenticação

Envie sua chave no header `X-API-Key`. Veja [Autenticação](/docs/getting-started/authentication) para detalhes.

## ## Parâmetros de consulta

| Name        | Type    | Required | Default | Description                                            |
| ----------- | ------- | -------- | ------- | ------------------------------------------------------ |
| `q`         | string  | Não      | —       | Busca textual no motivo ou no código da rejeição.      |
| `categoria` | string  | Não      | —       | Filtra por categoria (match exato, ver tabela abaixo). |
| `page`      | integer | Não      | `1`     | Página dos resultados (mínimo 1).                      |
| `page_size` | integer | Não      | `50`    | Itens por página (entre 1 e 200).                      |

## ## Exemplos de código

<Tabs items="[&#x22;curl&#x22;, &#x22;JavaScript&#x22;, &#x22;Python&#x22;, &#x22;PHP&#x22;, &#x22;C#&#x22;]">
  <Tab value="curl">
    ```bash
    curl -X GET "https://api.fiscalapi.com.br/api/v1/rejeicoes?q=duplicidade&page_size=20" \
      -H "X-API-Key: fapi_sua_chave_aqui"
    ```
  </Tab>

  <Tab value="JavaScript">
    ```javascript
    const response = await fetch(
      "https://api.fiscalapi.com.br/api/v1/rejeicoes?q=duplicidade&page_size=20",
      { headers: { "X-API-Key": "fapi_sua_chave_aqui" } }
    );
    const data = await response.json();
    console.log(`${data.total} rejeicoes encontradas`);
    ```
  </Tab>

  <Tab value="Python">
    ```python
    import requests

    response = requests.get(
        "https://api.fiscalapi.com.br/api/v1/rejeicoes",
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        params={"q": "duplicidade", "page_size": 20},
    )
    data = response.json()
    print(f"{data['total']} rejeicoes encontradas")
    ```
  </Tab>

  <Tab value="PHP">
    ```php
    $response = Http::withHeaders([
        'X-API-Key' => 'fapi_sua_chave_aqui',
    ])->get('https://api.fiscalapi.com.br/api/v1/rejeicoes', [
        'q' => 'duplicidade',
        'page_size' => 20,
    ]);
    $data = $response->json();
    ```
  </Tab>

  <Tab value="C#">
    ```csharp
    var client = new HttpClient();
    client.DefaultRequestHeaders.Add("X-API-Key", "fapi_sua_chave_aqui");
    var response = await client.GetAsync(
        "https://api.fiscalapi.com.br/api/v1/rejeicoes?q=duplicidade&page_size=20"
    );
    var json = await response.Content.ReadAsStringAsync();
    ```
  </Tab>
</Tabs>

## ## Resposta

### ### Campos de nível superior

| Campo       | Tipo    | Descrição                                  |
| ----------- | ------- | ------------------------------------------ |
| `total`     | integer | Total de rejeições que casam com o filtro. |
| `page`      | integer | Página atual.                              |
| `page_size` | integer | Itens por página.                          |
| `results`   | array   | Lista de rejeições (ver abaixo).           |

### ### Campos de cada rejeição (`results[]`)

| Campo       | Tipo           | Descrição                                                      |
| ----------- | -------------- | -------------------------------------------------------------- |
| `codigo`    | integer        | Código numérico da rejeição SEFAZ.                             |
| `titulo`    | string         | Título legível da rejeição.                                    |
| `slug`      | string         | Identificador usado na URL do blog.                            |
| `motivo`    | string         | Motivo oficial retornado pela SEFAZ.                           |
| `categoria` | string \| null | Categoria da rejeição. `null` quando não classificada.         |
| `url_blog`  | string         | Caminho da página pública no blog (`/blog/rejeicoes/{slug}/`). |

### ### Exemplo de resposta

```json
{
  "total": 1,
  "page": 1,
  "page_size": 20,
  "results": [
    {
      "codigo": 204,
      "titulo": "Rejeição 204 — Duplicidade de NF-e",
      "slug": "rejeicao-204-duplicidade-de-nf-e",
      "motivo": "Duplicidade de NF-e",
      "categoria": "Duplicidade",
      "url_blog": "/blog/rejeicoes/rejeicao-204-duplicidade-de-nf-e/"
    }
  ]
}
```

## ## Categorias

Valores aceitos no parâmetro `categoria`. O match é exato e respeita a acentuação:

| Categoria                  |
| -------------------------- |
| `Chave de Acesso`          |
| `Pagamento`                |
| `Evento`                   |
| `Destinatário`             |
| `Emitente`                 |
| `Certificado Digital`      |
| `Duplicidade`              |
| `Schema XML`               |
| `ICMS/Tributação`          |
| `Produto/Item`             |
| `Transporte`               |
| `Autorização/Contingência` |
| `Totalização/Valores`      |
| `Data/Prazo`               |
| `Número/Série`             |
| `Operação/Fiscal`          |
| `Outros`                   |

## ## Códigos de erro

| Código                   | HTTP Status | Descrição                                                      |
| ------------------------ | ----------- | -------------------------------------------------------------- |
| `REJEICOES_INDISPONIVEL` | 502         | Não foi possível consultar o catálogo de rejeições no momento. |
