Status ESG por lista de CARs
Descricao: Versao em lote de Status ESG por CAR. Recebe uma lista de codigos CAR e devolve o status de cada um numa unica chamada, com as mesmas camadas habilitadas no template ESG da cooperativa.
Endpoint
Regras
| Atributos | Descricao | Tipo | Obrigatorio | Validacoes |
|---|---|---|---|---|
| (corpo) | Lista de codigos CAR | Array de String | Sim | O corpo e um array JSON de strings, sem objeto envolvente. Lista vazia e recusada com 400. Cada codigo e validado contra o cadastro de CAR: se qualquer codigo do lote for desconhecido, a resposta volta 200 com [] — o lote inteiro e descartado, e nao apenas o codigo invalido. Ja um CAR conhecido que ainda nao tem analise registrada volta normalmente, com esg_status: "CONFORME", issues: [] e total_issues: 0 |
Importante: nao envie o header
cooperative-id. Ele e injetado automaticamente pelo API gateway a partir do token. Qualquer valor enviado pelo cliente e ignorado ou sobrescrito.
Exemplo de Requisicao
- cURL
- Java
- JavaScript
- Python
curl -X POST \
-H "Authorization: {SUA_API_KEY}" \
-H "Content-Type: application/json" \
-d '["MT-5107925-A1B2C3D4E5F6", "MT-5107925-Z9Y8X7W6V5U4"]' \
"https://api.merx.tech/api/v1/integration/environmental-embargoes/status-esg/property"
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String body = "[\"MT-5107925-A1B2C3D4E5F6\", \"MT-5107925-Z9Y8X7W6V5U4\"]";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.merx.tech/api/v1/integration/environmental-embargoes/status-esg/property"))
.header("Authorization", "{SUA_API_KEY}")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpClient client = HttpClient.newHttpClient();
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (Exception e) {
e.printStackTrace();
}
const response = await fetch(
'https://api.merx.tech/api/v1/integration/environmental-embargoes/status-esg/property',
{
method: 'POST',
headers: {
'Authorization': '{SUA_API_KEY}',
'Content-Type': 'application/json',
},
body: JSON.stringify(["MT-5107925-A1B2C3D4E5F6", "MT-5107925-Z9Y8X7W6V5U4"]),
}
);
const data = await response.json();
console.log(data);
import requests
url = "https://api.merx.tech/api/v1/integration/environmental-embargoes/status-esg/property"
headers = {
"Authorization": "{SUA_API_KEY}",
"Content-Type": "application/json"
}
payload = ["MT-5107925-A1B2C3D4E5F6", "MT-5107925-Z9Y8X7W6V5U4"]
response = requests.post(url, json=payload, headers=headers)
print(response.json())
O SDK Java ainda nao cobre este endpoint. Use a chamada HTTP direta como nos exemplos acima.
Parametros
Parametros de Cabecalho
| Nome | Descricao | Tipo | Obrigatorio |
|---|---|---|---|
| Authorization | Chave de API obtida via support-api@merx.tech | String | Sim |
| Content-Type | application/json | String | Sim |
Respostas
- 200 - Ok
Array com um item por CAR informado, na mesma estrutura de Status ESG por CAR.
[
{
"cooperative_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"property_code": "MT-5107925-A1B2C3D4E5F6",
"issues": [
{ "embargo_type": "PRODES_AMAZONIA", "total_issues": 0 },
{ "embargo_type": "EMBARGOS_IBAMA", "total_issues": 2 }
],
"total_issues": 2,
"esg_status": "NAO_CONFORME",
"area": 22.1174,
"city": "Sorriso",
"state": "MT",
"car_status": "AT",
"car_status_updated_at": 1787011200.0
}
]
Dicionario de dados
| Nome | Descricao | Tipo |
|---|---|---|
| cooperative_id | ID da cooperativa | UUID |
| property_code | Codigo CAR do imovel consultado | String |
| issues | Lista de apontamentos agrupados por tipo de embargo | Array |
| issues[].embargo_type | Tipo do embargo/camada de analise | String |
| issues[].total_issues | Total de apontamentos para o tipo de embargo | Number |
| total_issues | Total geral de apontamentos da propriedade | Number |
| esg_status | Status consolidado. Valores: CONFORME, NAO_CONFORME, NAO_ENCONTRADO, PROCESSANDO | Enum |
| area | Area do imovel (ha) | Number |
| city | Municipio do imovel | String |
| state | UF do imovel | String |
| car_status | Situacao do CAR. Valores: AT, CA, SU, PE | Enum |
| car_status_updated_at | Data da ultima atualizacao da situacao do CAR, em epoch com segundos decimais | Number |
O array issues traz uma entrada por camada habilitada no template ESG da cooperativa, entao o conjunto de
embargo_type varia conforme o template. Campos sem valor sao omitidos.
- 400 - Bad Request
Devolvido quando a lista vem vazia. O corpo deste erro vem do servico de embargos e nao segue o formato de erro do restante do portal — traz error, message, timestamp e status, em vez de messages:
{
"error": "Bad Request",
"message": "validation.cooperative-id.or.property-codes.missing",
"timestamp": "2026-08-25T11:38:13.10633954",
"status": 400
}
- 401 - Unauthorized
Devolvido pelo gateway quando o Authorization esta ausente ou invalido — nesse caso a resposta traz corpo, no formato {"data": [], "error": {...}}. A mensagem dentro de error varia conforme o plugin de autenticacao da rota, entao nao programe em cima do texto.