---
title: "Consultar prévia de cancelamento"
method: GET
path: "/partners/api/v4/orders/{id}/cancelation-preview"
tags: ["Pedidos"]
---

# Consultar prévia de cancelamento

`GET /partners/api/v4/orders/{id}/cancelation-preview`

Consulta prévia dos valores de reembolso antes de cancelar uma ordem. Retorna informações detalhadas sobre valor total a ser reembolsado, taxas de cancelamento, descontos aplicáveis e valores de seguro e taxas de serviço.

## Path parameters

- `id` string, required

## Query parameters

- `items` string, required
- `refundOption` 'ORIGINAL_PAYMENT_METHOD' | 'WALLET_CLICKBUS' — Opção de reembolso: - `ORIGINAL_PAYMENT_METHOD`: Reembolso será feito no método de pagamento original (cartão de crédito, PIX, etc.) - `WALLET_CLICKBUS`: Reembolso será creditado na carteira ClickBus do cliente

## Response `200`

Consulta de prévia de reembolso realizada com sucesso

- ResponsePreviewRefund
  - `totalAmount` number, double, required — Soma dos valores dos tickets que serão cancelados (excluindo seguro, taxas, descontos, etc.). Este é o valor base dos próprios tickets. Fórmula: Σ(itemTicketsToCancel.amount)
  - `insuranceAmount` number, double, required — Soma dos valores de seguro associados aos tickets que serão cancelados. O seguro é sempre cancelado junto com o ticket associado. Fórmula: Σ(insurance.amount) onde insurance.orderItemTicketId ∈ ticketsToCancelIds
  - `feeAmount` number, double, required — Valor proporcional da taxa de serviço que será reembolsada. Cancelamento Parcial: Calculado proporcionalmente baseado nos valores dos tickets. Fórmula: (totalFeeAmount × ticketsAmountToCancel) / totalTicketsAmount. Arredondado para 2 casas decimais (modo DOWN/truncate). Cancelamento Total: Retorna o valor completo da taxa de serviço (totalFeeAmount). Casos Especiais: Se totalTicketsAmount = 0, retorna 0. Se refundOption = WALLET_CLICKBUS, pode ser 0 (regras simplificadas). Se CancellationConfig.enableServiceFee = true, retorna 0 (taxa de serviço não reembolsada).
  - `cancelationFeeAmount` number, double, required — Taxa total de cancelamento (taxa líquida após descontos aplicados). Esta é a taxa final de cancelamento que será cobrada. Fórmula: totalFee - discountAmount. Onde totalFee = discountRefund + fineAmount. Componentes: fineAmount (calculado com base no tempo de retenção por ticket se enableFine = true), discountRefund (desconto proporcional aplicado ao cancelamento). Casos Especiais: Em regras simplificadas (WALLET_CLICKBUS, gratuidade total, período de retenção gratuito): 0. Se todos os tickets estão dentro do período de retenção gratuito: 0.
  - `discountAmount` number, double, required — Valor de desconto que será aplicado ao cancelamento (reduz a taxa de cancelamento). Cancelamento Parcial: Calculado proporcionalmente. Fórmula: (discountAmount × ticketsAmountToCancel) / totalTicketsAmount. Casos Especiais: Em regras simplificadas: 0. Se não houver descontos aplicáveis: 0.
  - `refundAmount` number, double, required — Valor total que será reembolsado ao cliente. Este é o valor final de reembolso incluindo todos os componentes. Este é o valor mais importante para exibir ao cliente. Fórmula: totalRefund + proportionalWalletClickBusRefund + originalOrderRefund. Componentes: 1. totalRefund (do OrderPaymentCancelService): Base refund = totalAmountRefundItems + serviceFeeRefund + insuranceAmount + interestRefund - discountRefund - fineAmount + greenPassRefund. 2. proportionalWalletClickBusRefund (se aplicável): Fórmula: (totalWalletClickBusAmount × ticketsAmountToCancel) / totalTicketsAmount. Arredondado para 2 casas decimais (modo DOWN). 3. originalOrderRefund (apenas para mudanças de viagem): Soma de tripChangeDiscount.amount onde: Tipo: TRIP_CHANGE_DISCOUNT, meta[TRIP_CHANGE_METHOD] ≠ "CHANGE_USING_TRAVEL_COMPANY_REBOOKING_API", meta[NEW_ORDER_ITEM_ID] ∈ ticketsToCancelIds. Casos Especiais: Regras simplificadas: refundAmount = order.totalAmount - order.totalRefundedAmount. Sem tickets canceláveis: 0.00.

## Other responses

- `400` — Requisição inválida
- `401` — Não autorizado - token inválido ou expirado
- `404` — Ordem não encontrada
- `500` — Erro interno do servidor

---

[API](https://skmtc.net/clickbus/apis/documenta-o-da-api-de-autentica-o-clickbus.md) · [All operations](https://skmtc.net/clickbus/apis/documenta-o-da-api-de-autentica-o-clickbus/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clickbus/documenta-o-da-api-de-autentica-o-clickbus/revisions/ead7d81fdb28/schema)
