Listar Companhias Produtoras com filtros (paginado)
Descrição: Retorna uma lista paginada de Companhias Produtoras vinculadas à cooperativa, com suporte a filtros.
Endpoint
POST/api/v1/integration/cooperatives/-/producers:paginated
Regras
| Atributos | Descrição | Tipo | Obrigatório | Validações |
|---|---|---|---|---|
| search_param | Busca genérica por nome ou documento | String | Não | - |
| company_name | Filtro por razão social | String | Não | - |
| status_vinculacao_intermediario | Filtro por status de vínculo com intermediário | List\<String> | Não | - |
| all_status | Quando true, retorna produtores de todos os status de análise | Boolean | Não | - |
| intermediary_id | Filtro por identificador do intermediário | UUID | Não | - |
| producer_ids | Filtro por lista de identificadores de produtores | List\<UUID> | Não | - |
| producer_types | Filtro por tipo de produtor | List\<Enum> | Não | Enumerador: PRODUCER, INTERMEDIARY |
| analisys_status | Filtro por status de análise da cooperativa | List\<Enum> | Não | Enumerador: PENDING_REVIEW, PENDING_APPROVAL, APPROVED, REFUSED |
| states | Filtro por estado(s) brasileiro(s) | List\<Enum> | Não | Enumerador: siglas dos 27 estados (ex: SP, MG, RS) |
| cities | Filtro por cidade(s) | List\<String> | Não | - |
| wallets_ids_list | Filtro por lista de identificadores de carteiras | List\<String> | Não | - |
| updated_after | Retorna apenas registros atualizados após está data/hora | DateTime | Não | Formato ISO 8601 (ex: 2024-01-15T00:00:00) |
Exemplo de Requisição
- cURL
- Java
- JavaScript
- Python
- SDK Java
curl -X POST \
-H "Authorization: {SUA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{ "search_param": "SOJA" }' \
"https://api.merx.tech/api/v1/integration/cooperatives/-/producers:paginated?page=0&size=30&sort=company_name,asc"
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String body = "{\"search_param\":\"SOJA\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.merx.tech/api/v1/integration/cooperatives/-/producers:paginated?page=0&size=30&sort=company_name,asc"))
.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/cooperatives/-/producers:paginated?page=0&size=30&sort=company_name,asc',
{
method: 'POST',
headers: {
'Authorization': '{SUA_API_KEY}',
'Content-Type': 'application/json',
},
body: JSON.stringify({ search_param: 'SOJA' }),
}
);
const data = await response.json();
console.log(data);
import requests
url = "https://api.merx.tech/api/v1/integration/cooperatives/-/producers:paginated"
params = {"page": 0, "size": 30, "sort": "company_name,asc"}
payload = {"search_param": "SOJA"}
headers = {
"Authorization": "{SUA_API_KEY}",
"Content-Type": "application/json",
}
response = requests.post(url, params=params, json=payload, headers=headers)
print(response.json())
import com.merx.sdk.api.MerxClient;
import com.merx.sdk.core.Environment;
import com.merx.sdk.model.baseline.cooperative.NetworkFilter;
MerxClient merx = MerxClient.builder()
.apiKey("{SUA_API_KEY}")
.environment(Environment.SANDBOX)
.build();
NetworkFilter filter = NetworkFilter.builder()
.searchParam("SOJA")
.build();
var page = merx.cooperatives()
.findNetworksPaginated(filter, 0, 30, "company_name,asc");
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 Consulta (Query)
| Nome | Descrição | Tipo | Obrigatório | Padrão |
|---|---|---|---|---|
| page | Número da página (0-indexado) | Integer | Não | 0 |
| size | Quantidade de registros por página | Integer | Não | 30 |
| sort | Campo e direção de ordenação (ex: company_name,asc) | String | Não | company_name,asc |
Parâmetros do Corpo
| Nome | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| search_param | Busca genérica por nome ou documento | String | Não |
| company_name | Filtro por razão social | String | Não |
| status_vinculacao_intermediario | Filtro por status de vínculo com intermediário | List\<String> | Não |
| all_status | Retorna produtores de todos os status de análise | Boolean | Não |
| intermediary_id | Identificador do intermediário | UUID | Não |
| producer_ids | Lista de identificadores de produtores | List\<UUID> | Não |
| producer_types | Filtro por tipo de produtor | List\<Enum> | Não |
| analisys_status | Filtro por status de análise | List\<Enum> | Não |
| states | Filtro por estados brasileiros | List\<Enum> | Não |
| cities | Filtro por cidades | List\<String> | Não |
| wallets_ids_list | Lista de identificadores de carteiras | List\<String> | Não |
| updated_after | Data/hora mínima de atualização | DateTime | Não |
Respostas
- 200 - Ok
{
"content": [
{
"id": "string (uuid)",
"originator_id": "string (uuid)",
"trading_name": "string",
"company_name": "string",
"status": "string",
"analysis_status": "string",
"city": "string",
"state": "string",
"city_code": "string",
"state_code": "string",
"type": "string",
"email": "string",
"created_at": 1709837511.870898,
"updated_at": 1709837511.870898,
"identifier": "string",
"document_type": "string",
"producer_type": "string",
"esg_status": "string",
"rating": "string",
"anonymized": true,
"enabled": true,
"removed": false
}
],
"pageable": {
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"page_number": 0,
"page_size": 30,
"offset": 0,
"paged": true,
"unpaged": false
},
"total_pages": 1,
"total_elements": 1,
"last": true,
"first": true,
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"number_of_elements": 1,
"size": 30,
"number": 0,
"empty": false
}
- 400 - Bad Request
{
"messages": ["message.entidade.campo-inválido"]
}
401 - Unauthorized
404 - NotFound