Skip to content

ValidacaoController

Valida os dados da safra de acordo com um checklist e uma conformidade.

Todas as requisições exigem os cabeçalhos X-API-ACCESS-KEY e X-API-SECRET-KEY.

POST /validacao

Executa uma validação para a safra. O campo safraId é obrigatório. Em dados, o checklist.id e a conformidade também são obrigatórios; o checklist precisa existir e possuir itens associados.

conformidade aceita: DDS, GEO, PND, CL, IAV, RC ou EUDR.

curl --request POST \
  --url https://<url>/validacao \
  --header 'X-API-ACCESS-KEY: <chave_de_acesso>' \
  --header 'X-API-SECRET-KEY: <chave_de_seguranca>' \
  --header 'Content-Type: application/json' \
  --data '{
    "safraId": "<id_safra>",
    "safraCodigo": "<codigo_safra_opcional>",
    "dados": {
      "checklist": {
        "id": "<id_checklist>"
      },
      "conformidade": "DDS"
    }
  }'

Retorna 200 OK com uma validação completa. O dados da validação contém os dados enviados; itens contém o resultado de cada item do checklist.

{
  "id": "<id_validacao>",
  "safraId": "<id_safra>",
  "safraCodigo": "<codigo_safra>",
  "hash": "<sha256>",
  "dataCadastro": "2026-01-15T10:00:00",
  "dataAtualizacao": "2026-01-15T10:00:00",
  "dados": {
    "checklist": {
      "id": "<id_checklist>"
    },
    "conformidade": "DDS"
  },
  "checklist": {
    "id": "<id_checklist>",
    "nome": "<nome>",
    "label": "<label>",
    "ativo": true,
    "conformidades": ["DDS"]
  },
  "inicioExecucao": "2026-01-15T10:00:00",
  "fimExecucao": "2026-01-15T10:00:01",
  "itens": [
    {
      "validacaoId": "<id_validacao>",
      "checklistItem": {
        "id": "<id_item>",
        "nome": "CAMPOS_OBRIGATORIOS",
        "label": "Campos obrigatórios",
        "tipo": "OBRIGATORIO",
        "checklist": {
          "id": "<id_checklist>"
        }
      },
      "conforme": true,
      "percentualNaoConformidade": 0.0,
      "exigencias": []
    }
  ]
}

Os itens atualmente reconhecidos pela implementação são DESMATAMENTO_CAR, TALHAO, DESMATAMENTO_POLIGONO, DESMATAMENTO_TALHAO e CAMPOS_OBRIGATORIOS. A validação calcula a não conformidade e registra as exigências encontradas.

PUT /validacao

Atualiza somente o mapa dados de uma validação existente. Essa operação não reexecuta o checklist nem recalcula os itens de validação.

curl --request PUT \
  --url https://<url>/validacao \
  --header 'X-API-ACCESS-KEY: <chave_de_acesso>' \
  --header 'X-API-SECRET-KEY: <chave_de_seguranca>' \
  --header 'Content-Type: application/json' \
  --data '{
    "id": "<id_validacao>",
    "dados": {
      "observacao": "<novo_valor>"
    }
  }'

Retorna 200 OK sem corpo.

GET /validacao/{id}

Busca uma validação completa pelo ID (String). Retorna o mesmo formato completo do POST, incluindo itens.

curl --request GET \
  --url https://<url>/validacao/<id_validacao> \
  --header 'X-API-ACCESS-KEY: <chave_de_acesso>' \
  --header 'X-API-SECRET-KEY: <chave_de_seguranca>'

GET /validacao/safra/{id}

Lista as validações da safra. O retorno é uma lista JSON, não um objeto Page.

GET /validacao

Lista as validações da API Key autenticada em uma página. Parâmetros opcionais: page (página, iniciando em zero), size (padrão 10) e sort (padrão dataCadastro).

Exemplo: /validacao?page=0&size=10&sort=dataCadastro,desc.

O conteúdo da página usa o resumo da validação, com id, safraId, safraCodigo, hash, dataCadastro, dataAtualizacao, dados, checklist, inicioExecucao e fimExecucao; os itens são retornados apenas na busca por ID e no cadastro.

DELETE /validacao/{id}

Exclui a validação pelo ID (String) e retorna 200 OK sem corpo.

Erros

Erros de regra de negócio e validação de entrada retornam 400 Bad Request no formato abaixo:

{
  "timestamp": "2026-01-15T10:00:00",
  "status": "NEGOCIO_EXCEPTION",
  "error": "Erro de negócio",
  "messages": ["A safra é obrigatória para a validação."],
  "path": "/validacao"
}
FSTec Logo

© 2025 FSTec — Todos os direitos reservados.