Buscar Rastreabilidade pela Negociação (ID)
Descrição: Busca Rastreabilidade através do ID da Negociação.
Endpoint
- da rotaO - entre traceability e commitments é um segmento literal da URL (envie o caractere - mesmo, sem substituí-lo por nada). Ele é um curinga de coleção que significa "sem um ID de rastreabilidade específico": a busca retorna todas as rastreabilidades vinculadas à negociação informada. Compare com o endpoint de exclusão, que usa um ID concreto nessa posição (/traceability/{traceability_id}/commitments/{commitment_id}).
Regras
| Atributos | Descrição | Tipo | Obrigatório | Validações |
|---|---|---|---|---|
| order_commitment_id | ID da Negociação | UUID | Sim |
Exemplo de Requisição
- cURL
- Java
- JavaScript
- Python
- SDK Java
curl -X GET \
-H "Authorization: {SUA_API_KEY}" \
"https://api.merx.tech/api/v1/integration/traceability/-/commitments/{order_commitment_id}"
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.merx.tech/api/v1/integration/traceability/-/commitments/{order_commitment_id}"))
.header("Authorization", "{SUA_API_KEY}")
.GET()
.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/traceability/-/commitments/{order_commitment_id}',
{
method: 'GET',
headers: {
'Authorization': '{SUA_API_KEY}',
},
}
);
const data = await response.json();
console.log(data);
import requests
url = "https://api.merx.tech/api/v1/integration/traceability/-/commitments/{order_commitment_id}"
headers = {
"Authorization": "{SUA_API_KEY}"
}
response = requests.get(url, headers=headers)
print(response.json())
import com.merx.sdk.api.MerxClient;
import com.merx.sdk.core.Environment;
import java.util.UUID;
MerxClient merx = MerxClient.builder()
.apiKey("{SUA_API_KEY}")
.environment(Environment.SANDBOX)
.build();
var page = merx.traceability().findByCommitment(UUID.fromString("00000000-0000-0000-0000-000000000000"), 0, 20);
Parâmetros
Parâmetros de Cabeçalho
| Nome | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| Authorization | Chave de API obtida via support-api@merx.tech | String | Sim |
Parâmetros de Caminho:
| Nome | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| order_commitment_id | ID da Negociação | UUID | Sim |
Respostas
- 200 - Ok
{
"content": [
{
"id": "7ec6421e-f549-4497-beb7-de48d05914f8",
"commitment_id": "937c22ca-c0ea-4651-9f39-daac1245937b",
"farm_name": "Fazenda Exemplo",
"car": "MT-5107909-094F5B7C56024B10BFDF884BF028D525",
"area": "38565.06",
"city": "Sorriso",
"state": "MT",
"planted_area": 350.0,
"estimated_production": 1200.0,
"company_id": "36b2ad09-b492-4514-a5e6-812369f43a6c",
"company_name": "Produtor Exemplo",
"company_social_id": "13722573000149",
"company_type": "PRODUCER",
"farm_id": "9df604e0-4325-4621-a5f2-a274197019cc",
"company_esg_status": "NAO_CONFORME",
"esg_status": "NAO_CONFORME",
"esg_report_request_id": "b3e24399-07ee-43b6-8b9b-5c03da2281e5",
"report_esg_status": "GENERATED",
"eudr_report_request_id": "d90eb7fa-7455-46a5-abfd-ca3c6ef75500",
"eudr_report_status": "GENERATED",
"eudr_status": "CONFORME",
"volume": 215.0,
"allocated_volume": 215.0,
"farm_esg_layers": [],
"producer_esg_layers": [],
"evidence_date": 1713924547.083919,
"linked_invoices_count": 3,
"created_at": 1783977034.033055
}
],
"pageable": {
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"page_size": 30,
"page_number": 0,
"offset": 0,
"paged": true,
"unpaged": false
},
"last": true,
"total_pages": 1,
"total_elements": 1,
"size": 30,
"number": 0,
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"first": true,
"number_of_elements": 1,
"empty": false
}
- 400 - Bad Request
{
"messages": ["message.entidade.campo-inválido"]
}
- 401 - Unauthorized
Retornado pelo gateway (a requisição não chega à aplicação). O corpo varia conforme o caso — trate sempre pelo código HTTP, nunca pelo texto de message.
Com o header Authorization ausente:
{
"data": [],
"error": {
"code": "401",
"message": "Unauthenticated"
}
}
Com o header Authorization presente porém inválido (texto literal do gateway, incluindo a grafia resquest):
{
"data": [],
"error": {
"code": "401",
"message": "Authentication refused the resquest"
}
}
- 404 - NotFound