Liquidação é o processo de associar passagens a um pedido, cobrar seu cliente e confirmar o pagamento à Movvia. Os três endpoints principais são POST /pedidos, POST /pedidos/{id}/confirmar e POST /pedidos/{id}/cancelar.
Agrupe as passagens que deseja liquidar em um pedido. Use sempre uma idempotencyKey única por operação.
curl -X POST https://hml.api.pedagioeletronico.com.br/gestao-webhooks-api/v1/pedidos \
-H "Authorization: Basic $MV_KEY" \
-H "x-parceiro-id: $MV_PARCEIRO_ID" \
-H "Content-Type: application/json" \
-d '{
"transacoes": ["t_9f2c7e1a", "t_3b8d4f2e"],
"idempotencyKey": "ord_20260424_001"
}'Resposta:
{
"pedidoId": "ped_a1b2c3d4",
"status": "pendente",
"valor": 25.00,
"transacoes": ["t_9f2c7e1a", "t_3b8d4f2e"],
"criadoEm": "2026-04-24T10:00:00Z"
}Após cobrar seu cliente com sucesso, confirme o pagamento:
curl -X POST https://hml.api.pedagioeletronico.com.br/gestao-webhooks-api/v1/pedidos/ped_a1b2c3d4/confirmar \
-H "Authorization: Basic $MV_KEY" \
-H "x-parceiro-id: $MV_PARCEIRO_ID" \
-H "Content-Type: application/json" \
-d '{"idempotencyKey": "conf_20260424_001"}'Resposta:
{
"pedidoId": "ped_a1b2c3d4",
"status": "confirmado",
"confirnadoEm": "2026-04-24T10:05:00Z"
}Cancele se não conseguir cobrar o cliente ou se houver erro no seu fluxo:
curl -X POST https://hml.api.pedagioeletronico.com.br/gestao-webhooks-api/v1/pedidos/ped_a1b2c3d4/cancelar \
-H "Authorization: Basic $MV_KEY" \
-H "x-parceiro-id: $MV_PARCEIRO_ID" \
-H "Content-Type: application/json" \
-d '{"motivo": "falha_cobranca", "idempotencyKey": "canc_20260424_001"}'pendente → confirmado
pendente → cancelado
confirmado → (terminal, sem transição)
cancelado → (terminal, sem transição)Pedidos em estado terminal não aceitam novas transições. Tentar confirmar ou cancelar um pedido já confirmado retorna 409 Conflict.
Pedidos não confirmados ou cancelados em até 48h são automaticamente cancelados pela plataforma. Um webhook pe.pedidos.expirado é emitido antes da expiração.
- Confirme o pedido no mesmo fluxo em que cobra o cliente, não em um job assíncrono.
- Sempre use
idempotencyKeydistinta para criação e confirmação do mesmo pedido. - Armazene o
pedidoIdpara reconciliação antes de confirmar.