Criar Nova Negociação
Descrição: Cria uma nova negociação para um usuário específico.
Endpoint
POST/api/v1/integration/order-commitments
Regras
| Atributos | Descrição | Tipo | Obrigatório | Validações |
|---|---|---|---|---|
| amount | Volume | Number | Sim | Quantidade referente a unidade de medida escolhida |
| producer_id | Id do produtor vinculado a negociação | UUID | Sim | Verifica se é válido |
| issuer_id | Id do emissor da negociação | UUID | Sim | Verifica se é válido |
| currency | Moeda escolhida para negociação | Enum | Condicional | BRL, USD, EUR. Caso o campo order_type seja "A_FIXAR", esse atributo passa a ser opcional, porém ao informá-lo os demais atributos que compõem o preço (price_unit_of_measurement e price) passam a ser obrigatórios. |
| product | Produto negociado | Enum | Sim | SOJA, TRIGO, MILHO |
| delivery_place_id | Id da unidade de entrega | UUID | Sim | Verifica se é válido |
| initial_delivery_date | Data inicial da entrega | Date | Condicional | Utilizar o padrão YYYY-MM-DD. Caso o campo order_type seja "A_FIXAR", "FIXACAO_COMPRA" ou "FIXACAO_DEPOSITO" esse atributo passa a ser opcional. |
| end_delivery_date | Data final da entrega | Date | Condicional | Utilizar o padrão YYYY-MM-DD. Caso o campo order_type seja "A_FIXAR", "FIXACAO_COMPRA" ou "FIXACAO_DEPOSITO" esse atributo passa a ser opcional. |
| haverst | Safra do produto negociado | String | Sim | Seguir o padrão 'ano/ano' ou 'ano - Safrinha'. Ex: 2021/2022 |
| modality | Modalidade da negociação | Enum | Condicional | BALCAO, DISPONIVEL, FUTURO, EXPORTACAO. Caso o campo order_type seja "A_FIXAR", esse atributo passa a ser opcional. |
| payday | Data do pagamento | Date | Condicional | Utilizar o padrão YYYY-MM-DD. Caso o campo order_type seja "A_FIXAR", esse atributo passa a ser opcional. |
| payment_type | Tipo do pagamento | Enum | Condicional | DINHEIRO, TROCA. Caso o campo order_type seja "A_FIXAR", esse atributo passa a ser opcional. |
| order_type | Tipo da negociação | Enum | Sim | COMPRA, FIXACAO_COMPRA, FIXACAO_DEPOSITO, A_FIXAR |
| order_date | Data do pedido | Date | Sim | Formatos aceitos: YYYY-MM-DD e ISO 8601 (Ex.: 2024-02-21T00:00:00Z) |
| price | Preço por cada unidade de medida | Number | Condicional | Utilizar o valor com duas casas decimais. Ex: 130.33; Caso o campo order_type seja "A_FIXAR", esse atributo passa a ser opcional, porém ao informá-lo os demais atributos que compõem o preço (price_unit_of_measurement e currency) passam a ser obrigatórios. |
| unit_of_measurement | Unidade de medida | Enum | Sim | SC, KG, TON |
| price_unit_of_measurement | Unidade de medida de preço | Enum | Não | SC, KG, TON. Caso não seja preenchido será atribuído o mesmo valor do campo unit_of_measurement. Caso o campo order_type seja "A_FIXAR", esse atributo passa a ser opcional, porém ao informá-lo os demais atributos que compõem o preço (price e currency) passam a ser obrigatórios. |
| shipping.type | Modalidade de frete | Enum | Condicional | FOB, CIF. Caso a campo order_type seja "COMPRA", este atributo passa a ser obrigatório. |
| shipping.city | Cidade em que o produto será entregue | String | Condicional | Até 250 caracteres. Caso seja selecionado FOB, este atributo passa a ser obrigatório |
| shipping.state | Estado em que o produto será entregue | String | Condicional | UF. Ex: SP. Caso seja selecionado FOB, este atributo passa a ser obrigatório |
| shipping.price | Custo do frete | Number | Não | Utilizar o valor com duas casas decimais. Ex: 950.33 |
| internal_id | Código da negociação no erp do cliente | String | Não | Até 100 caracteres |
| description | Descrição | String | Não | Até 250 caracteres |
| wallet_id | Identificador da carteira vinculada a negociação | UUID | Sim | Verifica se é válido |
Exemplo de Requisição
- cURL
- Java
- JavaScript
- Python
curl -X POST \
-H "Authorization: {SUA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"amount": 1000.00,
"producer_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"issuer_id": "4fb96g75-6828-5673-c4gd-3d074g77bgb7",
"product": "SOJA",
"delivery_place_id": "5gc07h86-7939-6784-d5he-4e185h88chc8",
"haverst": "2024/2025",
"unit_of_measurement": "SC",
"order_type": "COMPRA",
"order_date": "2024-06-30",
"wallet_id": "6hd18i97-8040-7895-e6if-5f296i99didi",
"currency": "BRL",
"initial_delivery_date": "2024-10-01",
"end_delivery_date": "2024-11-30",
"modality": "DISPONIVEL",
"payday": "2024-12-15",
"payment_type": "DINHEIRO",
"price": 85.00
}' \
"https://api.merx.tech/api/v1/integration/order-commitments"
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
String body = "{\"amount\": 1000.00, \"producer_id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\", \"issuer_id\": \"4fb96g75-6828-5673-c4gd-3d074g77bgb7\", \"product\": \"SOJA\", \"delivery_place_id\": \"5gc07h86-7939-6784-d5he-4e185h88chc8\", \"haverst\": \"2024/2025\", \"unit_of_measurement\": \"SC\", \"order_type\": \"COMPRA\", \"order_date\": \"2024-06-30\", \"wallet_id\": \"6hd18i97-8040-7895-e6if-5f296i99didi\", \"currency\": \"BRL\", \"initial_delivery_date\": \"2024-10-01\", \"end_delivery_date\": \"2024-11-30\", \"modality\": \"DISPONIVEL\", \"payday\": \"2024-12-15\", \"payment_type\": \"DINHEIRO\", \"price\": 85.00}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.merx.tech/api/v1/integration/order-commitments"))
.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/order-commitments',
{
method: 'POST',
headers: {
'Authorization': '{SUA_API_KEY}',
'Content-Type': 'application/json',
},
body: JSON.stringify({
amount: 1000.00,
producer_id: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
issuer_id: '4fb96g75-6828-5673-c4gd-3d074g77bgb7',
product: 'SOJA',
delivery_place_id: '5gc07h86-7939-6784-d5he-4e185h88chc8',
haverst: '2024/2025',
unit_of_measurement: 'SC',
order_type: 'COMPRA',
order_date: '2024-06-30',
wallet_id: '6hd18i97-8040-7895-e6if-5f296i99didi',
currency: 'BRL',
initial_delivery_date: '2024-10-01',
end_delivery_date: '2024-11-30',
modality: 'DISPONIVEL',
payday: '2024-12-15',
payment_type: 'DINHEIRO',
price: 85.00,
}),
}
);
const data = await response.json();
console.log(data);
import requests
url = "https://api.merx.tech/api/v1/integration/order-commitments"
headers = {
"Authorization": "{SUA_API_KEY}",
"Content-Type": "application/json"
}
payload = {
"amount": 1000.00,
"producer_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"issuer_id": "4fb96g75-6828-5673-c4gd-3d074g77bgb7",
"product": "SOJA",
"delivery_place_id": "5gc07h86-7939-6784-d5he-4e185h88chc8",
"haverst": "2024/2025",
"unit_of_measurement": "SC",
"order_type": "COMPRA",
"order_date": "2024-06-30",
"wallet_id": "6hd18i97-8040-7895-e6if-5f296i99didi",
"currency": "BRL",
"initial_delivery_date": "2024-10-01",
"end_delivery_date": "2024-11-30",
"modality": "DISPONIVEL",
"payday": "2024-12-15",
"payment_type": "DINHEIRO",
"price": 85.00
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
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 |
| Content-Type | application/json | String | Sim |
Parâmetros do Corpo
| Nome | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| amount | Quantidade (volume) da negociação | Number | Sim |
| producer_id | Identificador da Companhia Produtora | UUID | Sim |
| issuer_id | Identificador do emissor da negociação | UUID | Sim |
| product | Produto da negociação | String | Sim |
| delivery_place_id | Identificador do local de entrega | UUID | Sim |
| haverst | Safra da negociação | String | Sim |
| unit_of_measurement | Unidade de medida do volume | String | Sim |
| order_type | Tipo da negociação | Enum | Sim |
| order_date | Data da negociação (formato yyyy-MM-dd) | String | Sim |
| wallet_id | Identificador da carteira | UUID | Sim |
| currency | Moeda da negociação | String | Condicional (obrigatório para COMPRA, VENDA, FIXACAO_*) |
| initial_delivery_date | Data inicial de entrega (formato yyyy-MM-dd) | String | Condicional (obrigatório para COMPRA, VENDA) |
| end_delivery_date | Data final de entrega (formato yyyy-MM-dd) | String | Condicional (obrigatório para COMPRA, VENDA) |
| modality | Modalidade da negociação | Enum | Condicional (obrigatório para COMPRA, VENDA, FIXACAO_*) |
| payday | Data de pagamento (formato yyyy-MM-dd) | String | Condicional (obrigatório para COMPRA, VENDA, FIXACAO_*) |
| payment_type | Tipo de pagamento | Enum | Condicional (obrigatório para COMPRA, VENDA, FIXACAO_*) |
| price | Preço unitário | Number | Condicional (obrigatório para COMPRA, VENDA, FIXACAO_*) |
| shipping | Dados de frete | Object | Não |
| shipping.type | Tipo de frete | Enum | Não |
| shipping.city | Cidade de destino do frete | String | Não |
| shipping.state | Estado de destino do frete | String | Não |
| shipping.description | Descrição do frete | String | Não |
| shipping.price | Valor do frete | Number | Não |
| internal_id | Identificador interno (ERP) | String | Não |
| description | Descrição da negociação | String | Não |
| price_unit_of_measurement | Unidade de medida do preço | String | Não |
Respostas
- 200 - OK
{
"id": "string"
}
- 400 - Bad Request
{
"messages": ["message.entidade.campo-inválido"]
}
- 401 - Unauthorized