Pular para o conteúdo principal

Estornar Evento de Saldo

Descrição: Registra o estorno (total ou parcial) de uma entrega, identificada pelo seu delivery_identifier. O estorno não altera nem remove a entrega original: é criado um novo evento de saldo com volume negativo, vinculado à mesma entrega. A resposta da listagem não traz campo que classifique o evento nem ponteiro para o evento de origem — a distinção é pelo sinal do volume. O saldo efetivo da entrega é a soma dos volumes dos seus eventos (ex.: entrega de 150 + estorno de -50 = 100 restantes).

Endpoint​

POST/api/v1/integration/balance-events/-:reversal

Regras​

AtributosDescriçãoTipoObrigatórioValidações
delivery_identifierIdentificador externo da entrega a ser estornadaStringSimDeve corresponder a uma entrega já registrada
volumeQuantidade estornadaNumberSimDeve ser maior que zero e não pode exceder o volume entregue menos os estornos anteriores
unit_of_measurementCódigo da unidade de medida (ex.: SC, KG, TON)StringNãoSe omitida, é utilizada a unidade registrada na entrega original. Se informada, deve ser a mesma unidade da entrega (não há conversão entre unidades)
  • Uma mesma entrega pode receber múltiplos estornos parciais, desde que a soma não ultrapasse o volume entregue.
  • Os dados de produtor, produto, safra e data de entrega do estorno são herdados automaticamente da entrega original.
  • Os estornos aparecem na listagem de eventos de saldo com volume negativo e o mesmo delivery_identifier da entrega estornada. A listagem não expõe um campo que classifique o evento nem um ponteiro para o evento de origem — use o sinal de volume e o delivery_identifier para relacioná-los.

Exemplo de Requisição​

curl -X POST \
-H "Authorization: {SUA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"delivery_identifier": "NF-12345",
"volume": 50.5,
"unit_of_measurement": "SC"
}' \
"https://api.merx.tech/api/v1/integration/balance-events/-:reversal"

Parâmetros​

Parâmetros de Cabeçalho​

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

Parâmetros do Corpo​

NomeDescriçãoTipoObrigatório
delivery_identifierIdentificador externo da entrega a ser estornadaStringSim
volumeQuantidade estornadaNumberSim
unit_of_measurementCódigo da unidade de medidaStringNão

Respostas​

  • 200 - OK
{
"id": "93bb82bc-a6e2-45a9-af2f-e671ab55ec3e"
}
  • 400 - Bad Request
{
"messages": [
"descrição do erro 1",
"descrição do erro 2"
]
}
CenárioMensagem de erro
delivery_identifier ausentedelivery_identifier is required
volume ausentevolume is required
volume menor ou igual a zerovolume must be greater than zero
Volume estornado excede o volume entregue (menos estornos anteriores)message.balance-event.reversal.volume.exceeds-delivered
Unidade de medida diferente da registrada na entregamessage.balance-event.reversal.unit-of-measurement.mismatch
  • 404 - Not Found
CenárioMensagem de erro
Nenhuma entrega encontrada com o delivery_identifiermessage.balance-event.reversal.delivery-not-found
Unidade de medida não encontradamessage.unit-of-measurement.not-found
  • 415 - Unsupported Media Type

Content-Type diferente de application/json.