Skip to main content

Processar Saldo de Produtor

Descrição: Processa o saldo de um produtor. Semântica de upsert (chave: cpf_cnpj + cultura). Idempotente na camada de validação — enviar o mesmo payload múltiplas vezes retorna sucesso.

Endpoint

POST/api/v1/integration/balances

Regras

AtributosDescriçãoTipoObrigatórioValidações
cpf_cnpjCPF (11 dígitos) ou CNPJ (14 dígitos) do produtorStringSimDeve ser um CPF ou CNPJ válido (com verificação de dígito)
cropsLista de culturas com saldosArraySimNão pode ser nulo ou vazio
crops[].nameNome da cultura (ex: SOJA, MILHO)StringSimNão pode ser vazio ou nulo
crops[].deposit_balance_tonSaldo em depósito (toneladas)NumberSimDeve ser maior ou igual a zero
crops[].to_fix_balance_tonSaldo a fixar (toneladas)NumberSimDeve ser maior ou igual a zero
crops[].total_balance_tonSaldo total (toneladas)NumberSimDeve ser maior ou igual a zero

Exemplo de Requisição

Exemplo de Requisição
curl -X POST "https://homolog.api.merx.tech/api/v1/integration/balances" \
-H "Content-Type: application/json" \
-d '{
"cpf_cnpj": "52998224725",
"crops": [
{
"name": "SOJA",
"deposit_balance_ton": 100,
"to_fix_balance_ton": 200,
"total_balance_ton": 300
}
]
}'

Com múltiplas culturas:

Exemplo de Requisição com múltiplas culturas
curl -X POST "https://homolog.api.merx.tech/api/v1/integration/balances" \
-H "Content-Type: application/json" \
-d '{
"cpf_cnpj": "52998224725",
"crops": [
{
"name": "SOJA",
"deposit_balance_ton": 100,
"to_fix_balance_ton": 200,
"total_balance_ton": 300
},
{
"name": "MILHO",
"deposit_balance_ton": 50,
"to_fix_balance_ton": 100,
"total_balance_ton": 150
}
]
}'

Parâmetros

Parâmetros de Cabeçalho

NomeDescriçãoTipoObrigatório
Content-TypeDeve ser application/jsonStringSim

Parâmetros do Corpo

NomeDescriçãoTipoObrigatório
cpf_cnpjCPF ou CNPJ do produtorStringSim
cropsLista de culturas com saldosArraySim
crops[].nameNome da cultura (ex: SOJA, MILHO)StringSim
crops[].deposit_balance_tonSaldo em depósito (toneladas)NumberSim
crops[].to_fix_balance_tonSaldo a fixar (toneladas)NumberSim
crops[].total_balance_tonSaldo total (toneladas)NumberSim

Respostas

  • 200 - OK

Response sem body (HTTP 200 com corpo vazio).

  • 400 - Bad Request
{
"messages": [
"descricao do erro 1",
"descricao do erro 2"
]
}
CenárioMensagem de erro
cpf_cnpj ausentecpf_cnpj is required
CPF/CNPJ inválidocpf_cnpj is invalid
crops ausentecrops is required
Array crops vaziocrops cannot be empty
Cultura sem namename is required
Valor de saldo negativodeposit_balance_ton must be greater than or equal to zero
  • 415 - Unsupported Media Type

Content-Type diferente de application/json.