Pular para o conteúdo principal

Status ESG dos Produtores (paginado)

Descrição: Percorre, de forma paginada, todos os produtores da base da cooperativa, devolvendo para cada um o status de conformidade socioambiental e as camadas em que ele está embargado, com a quantidade de apontamentos por camada.

É o endpoint para varrer a base inteira. Para consultar um produtor específico com o detalhamento de cada apontamento, use a Busca Simplificada.

Endpoint

POST/api/v1/integration/environmental-embargoes/producer-status

Regras

Os filtros vão no corpo da requisição. Todos são opcionais — um corpo vazio ({}) devolve a base completa da cooperativa.

AtributosDescriçãoTipoObrigatórioValidações
producer_documentFiltra por um CPF/CNPJ. Pontuação e zeros à esquerda são irrelevantesStringNão-
search_paramBusca textual sobre o nome e o documento do produtorStringNão-
layersDefine o escopo de camadas na mão, sem aplicar o template da cooperativaList\<String>NãoCada camada precisa existir e ser do tipo PRODUCER_ISSUE
use_templateRespeitar o template ESG cadastrado para a cooperativa. Omitido equivale a trueBooleanNãotrue junto de layers preenchido → 400

Escopo de camadas

layers e use_template respondem à mesma pergunta — quais camadas entram na conta — e por isso não podem ser combinados quando use_template é true. As combinações válidas:

use_templatelayersEscopo considerado
omitidovazioTemplate ESG da cooperativa (padrão)
truevazioTemplate ESG da cooperativa
omitido["LISTA_SUJA_MPT"]Apenas as camadas informadas, sem template
false["LISTA_SUJA_MPT"]Apenas as camadas informadas, sem template
falsevazioTodas as camadas do tipo PRODUCER_ISSUE
true["LISTA_SUJA_MPT"]400 — combinação contraditória

Uma camada inexistente, com o nome errado, ou de tipo incompatível com o endpoint também retorna 400: sem isso a consulta não casaria com nada e devolveria a base inteira como CONFORME.

Os valores válidos saem de Camadas Disponíveis para o Filtro.

Exemplo de Requisição

curl -X POST \
-H "Authorization: {SUA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{ "search_param": "JOSE" }' \
"https://api.merx.tech/api/v1/integration/environmental-embargoes/producer-status?page=0&size=10"

Parâmetros

Parâmetros de Cabeçalho

NomeDescriçãoTipoObrigatório
AuthorizationChave de API obtida via support-api@merx.techStringSim
Content-Typeapplication/jsonStringSim

Parâmetros de Query

NomeDescriçãoTipoObrigatórioPadrão
pageNúmero da página, começando em zeroNumberNão0
sizeQuantidade de registros por página. Máximo 100NumberNão20

Dicionário de dados

NomeDescriçãoTipo
contentProdutores da páginaArray
content[].producer_nameNome do produtorString
content[].producer_documentCPF ou CNPJ do produtorString
content[].status_esgStatus consolidado. Valores: CONFORME, NAO_CONFORME, NAO_ENCONTRADOEnum
content[].embargoed_layersSomente as camadas com apontamento. Vazio quando o produtor está conformeArray
content[].embargoed_layers[].layerCamada de análise em que o produtor está embargadoString
content[].embargoed_layers[].amountQuantidade de apontamentos naquela camadaNumber
total_elementsTotal de produtores que atendem aos filtrosNumber
total_pagesTotal de páginasNumber
numberNúmero da página atual, começando em zeroNumber
sizeTamanho da páginaNumber
firstIndica se é a primeira páginaBoolean
lastIndica se é a última páginaBoolean
number_of_elementsQuantidade de registros nesta páginaNumber

status_esg é NAO_CONFORME quando embargoed_layers não está vazio e CONFORME quando está. O valor NAO_ENCONTRADO aparece quando o produtor não tem um documento utilizável na base (em branco, só pontuação ou só zeros): sem documento não há como cruzar com as bases de embargo, e devolver CONFORME afirmaria uma conformidade que nunca foi verificada.

Respostas

  • 200 - Ok
{
"content": [
{
"producer_name": "JOSE",
"producer_document": "34343434",
"status_esg": "NAO_CONFORME",
"embargoed_layers": [
{ "layer": "ICMBIO_PRODUTOR", "amount": 2 },
{ "layer": "LISTA_SUJA_MPT", "amount": 1 }
]
},
{
"producer_name": "JOSE 23",
"producer_document": "34353443443434",
"status_esg": "CONFORME",
"embargoed_layers": []
}
],
"total_elements": 842,
"total_pages": 85,
"number": 0,
"size": 10,
"first": true,
"last": false,
"number_of_elements": 10
}
  • 400 - Bad Request
{
"messages": ["message.layers-or-use-template.exclusive"]
}

Principais mensagens: message.layers-or-use-template.exclusive (use_template: true junto de layers preenchido), message.layers.unknown (camada inexistente ou de outro tipo), message.layers.invalid (entrada vazia em layers), message.size.max-exceeded (size acima de 100), message.size.invalid, message.page.invalid.

  • 401 - Unauthorized