# Dados da consulta

GTIN, CFOP, setor e data de referência, e como cada um muda o resultado.

Versão HTML: https://kind-coast-062131010.2.azurestaticapps.net/guias/dados-da-consulta/

Uma consulta tem quatro campos. Dois são obrigatórios:

| Campo | Obrigatório | Formato |
| --- | --- | --- |
| `gtin` | sim | 8, 12, 13 ou 14 dígitos, com dígito verificador válido |
| `cfop` | sim | 4 dígitos |
| `sector` | não | um dos códigos de [`GET /v1/enums/sectors`](https://kind-coast-062131010.2.azurestaticapps.net/referencia/list-sectors.md) |
| `referenceDate` | não | data `AAAA-MM-DD` |

O corpo aceita exatamente esses campos. Qualquer outro, como um CNPJ, é recusado com `400 INVALID_REQUEST`. O mesmo vale para cada item de um [lote](https://kind-coast-062131010.2.azurestaticapps.net/referencia/resolve-classification-batch.md).

## GTIN

O código de barras do produto, só com dígitos: sem máscara, espaços ou hífens. GTIN-8, GTIN-12, GTIN-13 (o EAN-13 comum) e GTIN-14 são aceitos, desde que o dígito verificador confira (módulo 10 da GS1).

A resposta devolve o GTIN normalizado com 14 dígitos, com zeros à esquerda: `7891000315507` volta como `07891000315507`. A identidade do produto não muda; use a forma de 14 dígitos como chave no seu banco.

## CFOP

O CFOP é atributo da operação, não do produto. Venda a consumidor, devolução, transferência entre filiais e remessa podem ter CST diferentes para o mesmo produto, por isso o campo é obrigatório e não tem valor padrão. Envie o CFOP da operação real.

O CFOP não é curinga. As regras fiscais são cadastradas para um CFOP exato ou para uma **operação**: uma lista explícita e versionada de CFOPs. O GetTax traduz o CFOP da consulta para a operação a que ele pertence na data de referência e aplica as regras daquela operação mais as cadastradas para o CFOP exato.

Algumas operações resolvem a classificação sozinhas, sem depender do produto. Uma transferência entre estabelecimentos do mesmo titular, por exemplo, pode ter uma regra de etapa `OPERATION` que vale para qualquer NCM. Ver [Etapas do motor](https://kind-coast-062131010.2.azurestaticapps.net/guias/status-e-alternativas.md#etapas-do-motor).

## Setor

O setor de atuação do cliente final da software house (supermercado, restaurante etc.). É opcional.

| Código | Contexto |
| --- | --- |
| `VAREJO_GERAL` | Varejo em geral |
| `BAR_RESTAURANTE` | Bares e restaurantes |
| `PRODUTOR_RURAL` | Produtor rural |
| `GOVERNO` | Governo |
| `ATACADO` | Atacado |
| `ZONA_FRANCA` | Zona Franca |

O setor filtra, não decide:

- **Sem `sector`**: vêm todas as alternativas pertinentes ao produto e ao CFOP, de qualquer setor.
- **Com `sector`**: vêm as alternativas genéricas (sem setor) mais as daquele setor. As genéricas não são descartadas por existir uma específica.
- Omitir o setor não equivale a `VAREJO_GERAL`.
- O setor sozinho não garante uma redução. `BAR_RESTAURANTE`, por exemplo, não reduz nada automaticamente: as condições aparecem em cada alternativa, em `applicability`.
- Valor fora da lista é recusado com `400 INVALID_REQUEST`.

A lista pode crescer. Leia de [`GET /v1/enums/sectors`](https://kind-coast-062131010.2.azurestaticapps.net/referencia/list-sectors.md), que não consome franquia, em vez de fixá-la no código.

## Data de referência

`referenceDate` escolhe as regras e alíquotas vigentes. Sem ela, vale a data de hoje no fuso de São Paulo, independente do fuso do servidor ou do cliente. A data usada volta na resposta, em `referenceDate`.

- Para emitir um documento agora, omita o campo.
- Para reprocessar ou conferir um documento antigo, envie a data do documento.

Toda vigência no GetTax (regra, linha de cClassTrib, alíquota) é um intervalo `[effectiveFrom, effectiveTo)`: início inclusivo, fim exclusivo. `effectiveTo: null` quer dizer sem data de término.
