Pular para o conteúdo principal

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​

AtributosDescriçãoTipoObrigatórioValidações
amountVolumeNumberSimQuantidade referente a unidade de medida escolhida
producer_idId do produtor vinculado a negociaçãoUUIDSimVerifica se é válido
issuer_idId do emissor da negociaçãoUUIDSimVerifica se é válido
currencyMoeda escolhida para negociaçãoStringCondicionalCódigo da moeda (ex.: BRL). Campo de texto livre — a API não valida os valores contra uma lista fixa. O valor é resolvido por busca do código. Obrigatório para os tipos COMPRA, VENDA, FIXACAO_COMPRA, FIXACAO_VENDA e FIXACAO_DEPOSITO; opcional para ANTECIPACAO e A_FIXAR.
productProduto negociadoStringSimNome do produto (ex.: SOJA). Campo de texto livre — a API não valida os valores contra uma lista fixa. O valor é resolvido por busca do nome.
delivery_place_idId da unidade de entregaUUIDSimVerifica se é válido
initial_delivery_dateData inicial da entregaDateCondicionalUtilizar o padrão YYYY-MM-DD. Obrigatório apenas quando order_type é COMPRA ou VENDA; opcional para todos os demais tipos.
end_delivery_dateData final da entregaDateCondicionalUtilizar o padrão YYYY-MM-DD. Obrigatório apenas quando order_type é COMPRA ou VENDA; opcional para todos os demais tipos.
haverstSafra do produto negociadoStringSimSeguir o padrão 'ano/ano' ou 'ano - Safrinha'. Ex: 2021/2022
modalityModalidade da negociaçãoEnumCondicionalBALCAO, DISPONIVEL, FUTURO, EXPORTACAO. Obrigatório para os tipos COMPRA, VENDA, FIXACAO_COMPRA, FIXACAO_VENDA e FIXACAO_DEPOSITO; opcional para ANTECIPACAO e A_FIXAR.
paydayData do pagamentoDateCondicionalUtilizar o padrão YYYY-MM-DD. Obrigatório para os tipos COMPRA, VENDA, FIXACAO_COMPRA, FIXACAO_VENDA e FIXACAO_DEPOSITO; opcional para ANTECIPACAO e A_FIXAR.
payment_typeTipo do pagamentoEnumCondicionalDINHEIRO, TROCA. Obrigatório para os tipos COMPRA, VENDA, FIXACAO_COMPRA, FIXACAO_VENDA e FIXACAO_DEPOSITO; opcional para ANTECIPACAO e A_FIXAR.
order_typeTipo da negociaçãoEnumSimCOMPRA, VENDA, FIXACAO_COMPRA, FIXACAO_VENDA, FIXACAO_DEPOSITO, ANTECIPACAO, A_FIXAR. FIXACAO_COMPRA é convertido para FIXACAO_VENDA antes de gravar, então a consulta devolve o tipo convertido. E em FIXACAO_VENDA, FIXACAO_DEPOSITO e A_FIXAR o objeto shipping é descartado sem erro
order_dateData do pedidoDateSimFormatos aceitos: YYYY-MM-DD e ISO 8601 (Ex.: 2024-02-21T00:00:00Z)
pricePreço por cada unidade de medidaNumberCondicionalUtilizar o valor com duas casas decimais. Ex: 130.33. Obrigatório para os tipos COMPRA, VENDA, FIXACAO_COMPRA, FIXACAO_VENDA e FIXACAO_DEPOSITO; opcional para ANTECIPACAO e A_FIXAR.
unit_of_measurementUnidade de medidaStringSimCódigo da unidade (ex.: SC, KG, TON). Campo de texto livre — a API não valida os valores contra uma lista fixa.
price_unit_of_measurementUnidade de medida de preçoStringNãoCódigo da unidade (ex.: SC, KG, TON). Campo de texto livre — a API não valida os valores contra uma lista fixa. Quando não preenchido, recebe o mesmo valor de unit_of_measurement — exceto quando order_type é A_FIXAR, caso em que permanece nulo.
shipping.typeModalidade de freteEnumCondicionalFOB, CIF, TPT, SOT. Caso o campo order_type seja "COMPRA", o objeto shipping e este atributo passam a ser obrigatórios. A disponibilidade de cada modalidade depende do cadastro do ambiente; outras modalidades existentes na plataforma não são aceitas por esta API. Se a modalidade informada não estiver cadastrada no ambiente, a negociação é criada sem frete e a requisição ainda responde 200. Atenção: quando este campo falta, a chave devolvida é message.shipping.state.mandatory — a mensagem aponta o estado, não o tipo.
shipping.cityCidade em que o produto será entregueStringCondicionalAté 50 caracteres — o limite é aplicado pelo serviço de negociações, que devolve 400 message.city.length. Obrigatório apenas quando order_type é "COMPRA" e shipping.type é FOB.
shipping.stateEstado em que o produto será entregueStringCondicionalUF. Ex: SP. Até 50 caracteres, limite aplicado pelo serviço de negociações (400 message.state.length). Obrigatório apenas quando order_type é "COMPRA" e shipping.type é FOB.
shipping.priceCusto do freteNumberNãoUtilizar o valor com duas casas decimais. Ex: 950.33
shipping.descriptionDescrição do freteStringNãoAté 1000 caracteres, limite aplicado pelo serviço de negociações (400 message.description.length)
internal_idCódigo da negociação no erp do clienteStringNãoSem limite de tamanho validado pela API. Precisa ser único na cooperativa: se já existir negociação com o mesmo código, a criação é recusada com 400 message.internal-id.already.exists
descriptionDescriçãoStringNãoAté 1000 caracteres, limite aplicado pelo serviço de negociações (400 message.description.length)
wallet_idIdentificador da carteira vinculada a negociaçãoUUIDSimVerifica se é válido

Exemplo de Requisição​

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": "4fb96a75-6828-5673-c4ad-3d074a77bab7",
"product": "SOJA",
"delivery_place_id": "5bc07b86-7939-6784-d5be-4e185b88cbc8",
"haverst": "2024/2025",
"unit_of_measurement": "SC",
"order_type": "COMPRA",
"order_date": "2024-06-30",
"wallet_id": "6cd18c97-8040-7895-e6cf-5f296c99d1d1",
"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,
"shipping": {
"type": "FOB",
"city": "Sorriso",
"state": "MT"
}
}' \
"https://api.merx.tech/api/v1/integration/order-commitments"

Parâmetros​

Parâmetros de Cabeçalho​

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

Parâmetros do Corpo​

NomeDescriçãoTipoObrigatório
amountQuantidade (volume) da negociaçãoNumberSim
producer_idIdentificador da Companhia ProdutoraUUIDSim
issuer_idIdentificador do emissor da negociaçãoUUIDSim
productProduto da negociaçãoStringSim
delivery_place_idIdentificador do local de entregaUUIDSim
haverstSafra da negociaçãoStringSim
unit_of_measurementUnidade de medida do volumeStringSim
order_typeTipo da negociaçãoEnumSim
order_dateData da negociação (formato yyyy-MM-dd)StringSim
wallet_idIdentificador da carteiraUUIDSim
currencyMoeda da negociaçãoStringCondicional (obrigatório para COMPRA, VENDA, FIXACAO_*)
initial_delivery_dateData inicial de entrega (formato yyyy-MM-dd)StringCondicional (obrigatório para COMPRA, VENDA)
end_delivery_dateData final de entrega (formato yyyy-MM-dd)StringCondicional (obrigatório para COMPRA, VENDA)
modalityModalidade da negociaçãoEnumCondicional (obrigatório para COMPRA, VENDA, FIXACAO_*)
paydayData de pagamento (formato yyyy-MM-dd)StringCondicional (obrigatório para COMPRA, VENDA, FIXACAO_*)
payment_typeTipo de pagamentoEnumCondicional (obrigatório para COMPRA, VENDA, FIXACAO_*)
pricePreço unitárioNumberCondicional (obrigatório para COMPRA, VENDA, FIXACAO_*)
shippingDados de freteObjectCondicional (obrigatório para COMPRA)
shipping.typeTipo de freteEnumCondicional (obrigatório para COMPRA)
shipping.cityCidade de destino do freteStringCondicional (obrigatório para COMPRA quando o tipo é FOB)
shipping.stateEstado de destino do freteStringCondicional (obrigatório para COMPRA quando o tipo é FOB)
shipping.descriptionDescrição do freteStringNão
shipping.priceValor do freteNumberNão
internal_idIdentificador interno (ERP)StringNão
descriptionDescrição da negociaçãoStringNão
price_unit_of_measurementUnidade de medida do preçoStringNão

Respostas​

  • 200 - OK
{
"id": "string"
}
  • 400 - Bad Request
{
"messages": ["message.entidade.campo-inválido"]
}
  • 401 - Unauthorized

  • 404 - Not Found

Emissor informado em issuer_id não encontrado para a cooperativa do token.

{
"messages": ["message.order-commitment.invalid-issuer"]
}