Ao fazer a estimativa de reembolsos, você deve sempre verificar os dados preenchidos em cancelPolicyInfoList.

Se o cliente cancelar no período da política de cancelamento do hotel, você deverá primeiro calcular a multa de cancelamento e subtrair esse valor do atributo total de ChargeableRateInfo.

Se o cliente cancelar fora do período da política, bastará retornar o valor do atributo total de ChargeableRateInfo como o reembolso calculado.

Ao retornar estimativas para exibir aos clientes, use sempre mensagens claras declarando que esse valor é apenas uma estimativa sem garantias expressas ou implícitas. Os ajustes de garantia de equiparação de preços, descontos aplicados após a reserva inicial, etc, não podem ser contabilizados na API.

Somente os agentes do suporte ao cliente da EAN podem ver os valores exatos a serem reembolsados. Ligue para o número do suporte de sua região para obter um valor preciso.

Como calcular e aplicar multas de cancelamento às estimativas

Esta seção refere-se às informações contidas em cancelPolicyInfoList. Familiarize-se completamente com a estrutura desta matriz antes de tentar implementar as estimativas de reembolso. Para determinar se uma multa é aplicável a um cancelamento, verifique primeiro o valor do elemento startWindowHours no segundo nó cancelPolicyInfo.

Se a hora da solicitação de cancelamento estiver dentro do período, você deverá calcular e subtrair a multa da estimativa. Caso contrário, bastará retornar o valor total original cobrado como estimativa.

Para calcular a multa, consulte os valores dos elementos de detalhe de multa retornados no primeiro nó cancelPolicyInfo.

Exemplos:

<CancelPolicyInfoList>
 <CancelPolicyInfo>
   <versionId>206071749</versionId>
   <cancelTime>19:00:00</cancelTime>
   <startWindowHours>0</startWindowHours>
   <amount>50</amount>
   <currencyCode>USD</currencyCode>
   <timeZoneDescription>(GMT-06:00) Central Time (US &amp; Canada)</timeZoneDescription>
 </CancelPolicyInfo>
 <CancelPolicyInfo>
  <versionId>208751445</versionId>
  <cancelTime>19:00:00</cancelTime>
  <startWindowHours>48</startWindowHours>
  <amount>0</amount>
  <currencyCode>USD</currencyCode>
  <timeZoneDescription>(GMT-06:00) Central Time (US &amp; Canada)</timeZoneDescription>
</CancelPolicyInfo>
</CancelPolicyInfoList>

startWindowHours no segundo nó retornou com um valor de 48. O cliente cancela 45 horas antes do início de sua estadia. Você deve subtrair US$ 50 do total cobrado no momento da reserva para calcular corretamente sua estimativa.

Cada nó de cancelPolicyInfo pode conter os elementos amount, percent ou nightCount separadamente ou em combinações como amount e nightCount ou amount e percent.

Qualquer outra combinação em um único nó é inválida e deve ser tratada como erro. Ignore os elementos que retornarem vazios ou com 0, pois não contribuem para o cálculo da política.

Lembre-se de as políticas podem apresentar multas dentro e fora do prazo (valores positivos tanto no primeiro como no segundo nó). Não é comum, mas desde que qualquer combinação de valores de multa seja válida como descrito acima, a política continuará integralmente válida.

Cálculos e exemplos de multa

Esses exemplos de multa abrangem todas as combinações válidas possíveis que você pode esperar da API. Na maioria dos casos, você só precisa calcular as multas para os cancelamentos feitos no período da política. Entretanto, em alguns casos, você também terá que calcular as multas para os cancelamentos fora do prazo – consulte o último exemplo nesta página.

Ao calcular o imposto de diárias individuais, não deixe de calcular a carga tributária usando nightlyRateTotal e não o total. Isso é somente para criar uma estimativa - não é assim que a EAN calcula os impostos sobre reembolsos.


Observe que os valores de impostos subtraídos para os cálculos de multa de diária são por noite , e não valores totais.

Consulte as seguintes tarifas e totais em todos os exemplos abaixo:

<ChargeableRateInfo {truncated} total="983.34" nightlyRateTotal="816.05">
    <NightlyRatesPerRoom size="2">
        <NightlyRate baseRate="400.58" rate="400.58" promo="false"></NightlyRate>
        <NightlyRate baseRate="415.47" rate="415.47" promo="false"></NightlyRate>
    </NightlyRatesPerRoom>
<Surcharges size="1">
    <Surcharge type="TaxAndServiceFee" amount="167.29"></Surcharge>
</Surcharges>

Cálculo de reembolso com um valor de amount de multa por cancelamento de 50

  • total - valor
  • 983,34 - 50= 933,34 de reembolso calculado

Cálculo de reembolso com um valor de percent de multa por cancelamento de 25

  • total - (% do total)
  • 983,34 - (25% de 983,34)= 737,50 de reembolso calculado

Cálculo de reembolso com um valor de nightCount de multa por cancelamento de 1

  • total - (valor da primeira diária + imposto da primeira diária)
  • 983,34 - (400,58 + 82,12)= 500,64 de reembolso calculado

Cálculo de reembolso com um valor de nightCount de multa por cancelamento de 2

  • total - ([valor da primeira diária + imposto da primeira diária]+[valor da segunda diária + imposto da segunda diária])
  • 983,34 - ([400,58 + 82,12] + [415,47 + 85,17]) = 0,00 (nenhum reembolso depois da multa)

Cálculo de reembolso com um valor de amount de multa por cancelamento de 20 e um valor de percent de 10

  • total - valor - (% do total)
  • 983,34 - 20 - (10% de 983,34)= 865,01 de reembolso calculado

Cálculo de reembolso com um valor de amount de multa por cancelamento de 30 e um valor de nightCount de 1

  • total - (valor + [valor da primeira diária + imposto da primeira diária])
  • 983,34 - (30 + [400,58 + 82,12]) = 470,64 de reembolso calculado


Multas dentro e fora do período da política

A política de cancelamento de exemplo abaixo estabelece multas pelo cancelamento dentro e fora do período da política. Os cálculos de exemplo usam a mesma tarifa e valores totais dos exemplos anteriores.

<CancelPolicyInfoList> 
 <CancelPolicyInfo>
  <versionId>208198632</versionId>
<cancelTime>23:59:00</cancelTime>
<startWindowHours>0</startWindowHours>
<nightCount>0</nightCount>
<percent>100</percent>
<currencyCode>USD</currencyCode>
<timeZoneDescription>(GMT+08:00) Kuala Lumpur, Singapore </timeZoneDescription> </CancelPolicyInfo>

<CancelPolicyInfo>
<versionId>208198631</versionId>
<cancelTime>23:59:00</cancelTime>
<startWindowHours>168</startWindowHours>
<nightCount>1</nightCount>
<currencyCode>USD</currencyCode>
<timeZoneDescription>(GMT+08:00) Kuala Lumpur, Singapore</timeZoneDescription>
</CancelPolicyInfo>
</CancelPolicyInfoList>

Cálculo de reembolso dentro do prazo (o cliente cancela em 168 horas ou menos antes do check-in):

  • total - (% of total)
  • 983.34 - (100% of 983.34)= 0 de reembolso calculado

Cálculo de reembolso fora do prazo (o cliente cancela a qualquer momento antes do início do prazo da política de 168 horas):

  • total - (first nightly rate value + first night's tax)
  • 983.34 - (400.58 + 82.12) = 500.64

Cancele uma reserva existente para um único quarto.

Para cancelar uma reserva de vários quartos, cada quarto no itinerário deve ser cancelado individualmente.

Se você precisar de ajuda para analisar ou enviar por mensagem multas por cancelamento de hotel, consulte a nossa documentação na cancelPolicyInfoList matriz.
Sempre será retornado um erro ao cancelar reservas estáticas de teste. Isso é normal; reservas de teste nunca são incluídas nos nossos sistemas de pagamento, acomodação ou inventário de quartos disponíveis.
Para verificar o seu teste de cancelamento, procure o nosso e-mail de pós-cancelamento automatizado ou use uma solicitação de itinerário de acompanhamento.

Se você receber um erro ao cancelar uma reserva ativa, consulte nossa página de erros de cancelamento.


Formatos de solicitação
URL em XML/REST: GET http://api.ean.com/ean-services/rs/hotel/v3/cancel?
Elemento pai XML: <HotelRoomCancellationRequest>



Parâmetros de solicitação

Parâmetros base
Nome Valor Obrigatório Descrição
itineraryId long yes A ID de itinerário fornecida no momento da reserva.
email string yes O endereço de e-mail fornecido no momento da reserva.
confirmationNumber string yes O número de confirmação do quarto a ser cancelado.

Lembre-se de que as reservas de vários quartos devem ser canceladas em solicitações separadas, um quarto de cada vez. Enviar vários números de confirmação em uma única solicitação não funcionará.
reason string no Código do motivo do cancelamento, se apropriado. Isso não é obrigatório e, normalmente, não afeta o processamento do cancelamento.

Valores:
HOC: O hotel me pediu para cancelar
COP: Mudança de planos
FBP: Descobri um preço melhor
FBH: Descobri um hotel melhor
CNL: Decidi cancelar os meus planos
NSY: Prefiro não dizer
OTH: Outro


Conteúdo da resposta
Elemento pai: HotelRoomCancellationResponse

Nome Valor Descrição
cancellationNumber string Número de referência do cancelamento, se bem-sucedido. Os clientes devem continuar guardando seus números de itinerário e de confirmação, além deste número, para qualquer correspondência futura.

Exemplo de solicitação XML:

http://api.ean.com/ean-services/rs/hotel/v3/cancel?
minorRev=[current minorRev #]
&cid=55505
&apiKey=[xxx-yourOwnKey-xxx]
&customerUserAgent=[xxx]
&customerIpAddress=[xxx]
&customerSessionId=[xxx]
&locale=en_US
&currencyCode=USD
&xml=
<HotelRoomCancellationRequest>
	<itineraryId>xxxxxxx</itineraryId>
	<email>email@domain.com</email>
	<reason>COP</reason>
	<confirmationNumber>xxxxxxxx</confirmationNumber>
</HotelRoomCancellationRequest>

Exemplo de resposta XML:

<ns2:HotelRoomCancellationResponse> 
   <customerSessionId>XXXX</customerSessionId>
   <cancellationNumber>XXXXXX</cancellationNumber>
</ns2:HotelRoomCancellationResponse>

Exemplo de solicitação REST:

http://api.ean.com/ean-services/rs/hotel/v3/cancel?
minorRev=[current minorRev #]
&cid=55505
&apiKey=[xxx-yourOwnKey-xxx]
&customerUserAgent=[xxx]
&customerIpAddress=[xxx]
&customerSessionId=[xxx]
&locale=en_US
&currencyCode=USD
&itineraryId=xxxxxxx
&email=email@domain.com
&reason=COP
&confirmationNumber=xxxxxxxx 

Exemplo de resposta JSON:

{"HotelRoomCancellationResponse":{"customerSessionId":"XXXX","cancellationNumber":"XXXXX"}}