v1

latestOpenAPI 3.0.02026-07-2420104111.7 KB
Pedidos

Consultar prévia de cancelamento

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.

get/partners/api/v4/orders/{id}/cancelation-preview

Path parameters

idstring required
Example:QMTL04R2

ID único da ordem (publicId)

Query parameters

itemsstring required
Example:1111,2222,3333

IDs dos itens/tickets a cancelar, separados por vírgula (CSV).

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
Example:ORIGINAL_PAYMENT_METHOD

Opção de reembolso

Response

Consulta de prévia de reembolso realizada com sucesso

totalAmountnumber 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)

insuranceAmountnumber 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

feeAmountnumber 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).

cancelationFeeAmountnumber 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.

discountAmountnumber 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.

refundAmountnumber 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.

Example response

{
  "totalAmount": 100,
  "insuranceAmount": 10,
  "feeAmount": 5,
  "cancelationFeeAmount": 15,
  "discountAmount": 20,
  "refundAmount": 80
}