Skip to content

ConsultaController

Consulta os dados consolidados da safra e gera o relatório de compliance/DDS. A rota permanece com a grafia complaince, pois esse é o caminho exposto pelo backend.

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

GET /complaince/dds/{idSafra}

Gera o DDS da safra usando a última validação registrada para a safra e a API Key autenticada. É necessário executar uma validação antes de chamar essa rota.

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

O retorno é um objeto DDS. Os campos preenchidos pela implementação atual são dds_reference (código da safra), operator, producers, legal_compliance, deforestation_free_declaration quando aplicável e submission_date. consignment, risk_assessment e traceability ainda podem retornar null.

{
  "dds_reference": "<codigo_safra>",
  "operator": {
    "operator_id": "<access_key>",
    "name": "<nome_api_key>",
    "registration_number": "<registro>",
    "EORI_number": "<eori>",
    "address": {
      "street": "<endereco>",
      "city": "<cidade>",
      "state": "<estado>",
      "postcode": "<cep>",
      "country": "<pais>"
    },
    "contact": {
      "email": "<email>",
      "phone": "<telefone>"
    }
  },
  "consignment": null,
  "producers": [
    {
      "producer_id": "BR<identificador_receita>",
      "name": "<nome_produtor>",
      "country": "Brazil",
      "lote_id": "<codigo_safra>",
      "plots": [
        {
          "plot_id": "<id_plano_cultivo>",
          "geometry": {
            "type": "Polygon",
            "coordinates": [[[-46.6333, -23.5500], [-46.6333, -23.5600]]]
          },
          "area_ha": 0.0
        }
      ]
    }
  ],
  "legal_compliance": {
    "country_production_law_reference": "Lei Florestal Brasileira (Lei Nº 12.651/2012).",
    "permits_for_land_use_change": "Not applicable",
    "permission_for_export": null
  },
  "deforestation_free_declaration": null,
  "risk_assessment": null,
  "traceability": null,
  "submission_date": "2026-01-15"
}

Os dados de operator são montados a partir dos campos da API Key (accessKey, nome, registro, eori, endereço e contato). Os produtores e polígonos são derivados da consulta da safra; as coordenadas dos polígonos são serializadas como [longitude, latitude].

Atenção: o gerador DDS verifica atualmente o item de checklist DESMATAMENTO_POLIGONOS (plural) para preencher deforestation_free_declaration, enquanto o motor de validação reconhece DESMATAMENTO_POLIGONO (singular). Por isso, esse bloco pode permanecer null com os checklists atuais.

GET /complaince/{id}

Retorna a consulta completa da safra, com safra e um mapa fases. Cada chave de fases representa uma etapa que possui registros para a safra; os registros mantêm os campos id, safraId, safraCodigo, faseClazz, dados e os metadados de auditoria.

{
  "safra": {},
  "fases": {
    "<chave_fase>": []
  }
}

GET /complaince/{idSafra}/complainceReportExport/{conformidade}/{idioma}

Exporta o relatório de compliance da safra.

  • conformidade: DDS, GEO, PND, CL, IAV, RC ou EUDR.
  • idioma: PT, DE, EN, ES, FR, IT ou ZH.

O parâmetro conformidade é aceito pela rota, mas a implementação atual não o usa para filtrar o relatório. Para PT, o relatório é retornado no idioma original; os demais idiomas passam pelo serviço de tradução.

curl --request GET \
  --url 'https://<url>/complaince/<id_safra>/complainceReportExport/DDS/PT' \
  --header 'X-API-ACCESS-KEY: <chave_de_acesso>' \
  --header 'X-API-SECRET-KEY: <chave_de_seguranca>'

O relatório retornado atualmente possui versaoLayout ("1.0"), hashIntegridade e safra. Embora o DTO suporte fases achatadas como propriedades de primeiro nível, o serviço atual não adiciona fases ao exportador; portanto, elas não aparecem nessa resposta.

Erros

Quando não existe validação para o DDS ou a API Key não é encontrada, a resposta é 400 Bad Request:

{
  "timestamp": "2026-01-15T10:00:00",
  "status": "NEGOCIO_EXCEPTION",
  "error": "Erro de negócio",
  "messages": ["Validação não encontrada para a safra <id_safra>. Execute a validação antes de gerar o DDS."],
  "path": "/complaince/dds/<id_safra>"
}
FSTec Logo

© 2025 FSTec — Todos os direitos reservados.