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 do tipo REVERSAL, com volume negativo, vinculado à entrega estornada. 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 event_type: "REVERSAL", volume negativo e o campo original_event_id apontando para a entrega estornada.

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.