Oprócz pierwotnej liczby gości ceny przesyłane przez firmę <OTA_HotelRateAmountNotifRQ>
można zmienić, tak aby uwzględniały potrzeby dzieci i dorosłych. Komunikat ExtraGuestCharges
zawiera informacje o sposobie obliczania cen za tych dodatkowych gości oraz o pokojach, abonamentach i datach pobytu.
Wymagania dotyczące pojemności
Ceny obliczone na podstawie komunikatu ExtraGuestCharges
mają zastosowanie tylko wtedy, gdy spełnione są wszystkie wymagania dotyczące pojemności. Więcej informacji znajdziesz w sekcji Transakcja (dane usługi).
Żądania
Składnia
Komunikat ExtraGuestCharges
ma taką składnię:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges partner="partner_account_name"
id="message_ID"
timestamp="timestamp">
<HotelExtraGuestCharges hotel_id="HotelID" action="[overlay]">
<ExtraGuestCharge>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<StayDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD"
days_of_week="MTWHFSU_or_subset"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="float"/>
<ChildAgeBrackets>
<!-- The following are different ways child charges can be specified.
Use the option that matches your system. -->
<ChildAgeBracket max_age="integer" amount="float"
exclude_from_capacity="[true|false]"/>
<ChildAgeBracket max_age="integer" percentage="float"
exclude_from_capacity="[true|false]"
counts_as_base_occupant="[never|preferred|always]"/>
<ChildAgeBracket max_age="integer" discount_amount="float"
exclude_from_capacity="[true|false]"
counts_as_base_occupant="[never|preferred|always]"/>
</ChildAgeBrackets>
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Elementy i atrybuty
Wiadomość ExtraGuestCharges
składa się z tych elementów i atrybutów:
Element / @Atrybut | Wystąpienia | Typ | Opis |
---|---|---|---|
ExtraGuestCharges | 1 | Complex element | Główny element tej wiadomości. |
ExtraGuestCharges / @partner | 1 | string | Konto partnera, z którego pochodzi ta wiadomość. Ta wartość ciągu znaków to wartość Partner key wymieniona na
stronie Ustawienia konta w Hotel Center.
Uwaga: jeśli masz backend, który udostępnia pliki danych dla wielu kont, ta wartość musi odpowiadać wartości atrybutu |
ExtraGuestCharges / @id | 1 | string | Unikalny identyfikator tej wiadomości z żądaniem. Ta wartość jest zwracana w wiadomości z odpowiedzią. Dozwolone znaki to a-z , A-Z , 0-9 , _ (podkreślenie) i - (łącznik). |
ExtraGuestCharges / @timestamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
ExtraGuestCharges / HotelExtraGuestCharges | 0..n | HotelExtraGuestCharges | Kontener opłat dotyczących pojedynczej usługi. |
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id | 1 | string | Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu podanym za pomocą
<id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też podany w Hotel Center. |
ExtraGuestCharges / HotelExtraGuestCharges / @action | 0..1 | enum | Określa sposób stosowania aktualizacji. Obsługiwana jest tylko wartość overlay , a wartością domyślną jest nakładka. Wszelkie wcześniejsze opłaty za tę usługę zostaną usunięte przed zastosowaniem aktualizacji. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge | 0..99 | ExtraGuestCharge | Jeden zestaw opłat za usługę. Mogą one obejmować ograniczenia dotyczące sposobu naliczania opłaty oraz obliczania opłat według wieku lub kategorii gościa. Każdy element |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets | 1 | AgeBrackets | Kontener z przedziałami wiekowymi służący do obliczania opłat według wieku lub kategorii gościa. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge | 0..1 | AdultCharge | Pojemnik na opłatę za dodatkową osobę dorosłą. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount | 0..1 | float | Dodatnia wartość dziesiętna, która określa stałą opłatę za dodatkową osobę dorosłą. Przy naliczaniu opłaty za noc jest używana ta sama waluta, co w przypadku stawek za noc. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets | 0..1 | ChildAgeBrackets | Kontener na dodatkowe opłaty podrzędne. Te przedziały wiekowe mogą obejmować wyłącznie przedział wiekowy 0–17 włącznie. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket | 1..99 | ChildAgeBracket | Opłata, która dotyczy dzieci w określonym przedziale wiekowym. Należy ułożyć je w kolejności od najniższej max_age do najwyższej wartości (max_age ). Kwotę obciążenia można określić za pomocą właściwości amount , percentage lub discount_amount . Dla każdego elementu <ChildAgeBracket> musisz określić dokładnie 1 z tych atrybutów.
|
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age | 1 | integer | Maksymalny wiek, w którym mogą obowiązywać opłaty określone w zasadzie <ChildAgeBracket> . Minimalny wiek wynosi 0, jeśli przed tym ustawieniem nie określono żadnego elementu <ChildAgeBracket> . W przeciwnym razie jest o 1 większa niż maksymalny wiek w poprzednim nawiasie. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity | 1 | boolean | Wartość logiczna, która określa, czy dziecko z tego przedziału wiekowego powinno być wliczane do łącznej pojemności sali i limitu dzieci. Te limity można ustawić za pomocą transakcji(danych usługi). Na przykład niemowlęta w wieku poniżej określonego wieku mogą nie być wliczane do limitu miejsca dla dziecka. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount | 0..1 | float | Nieujemna wartość dziesiętna, która określa zryczałtowaną kwotę, która zostanie naliczona za dodatkowy element podrzędny w tym nawiasie. W przypadku tej opłaty używana jest ta sama waluta, która została określona dla stawek za noc. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage | 0..1 | float | Wartość dziesiętna z zakresu od 1 do 99, która określa procent ceny produktu dorosłego, która powinna zostać pobrana za dodatkowe dziecko w tym przedziale. W przypadku tej opłaty używana jest ta sama waluta, która została określona dla stawek za noc. Szczegółowe informacje o sposobie obliczania ceny dla dorosłych znajdziesz w dyskusji na stronie |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount | 0..1 | float | Dodatnia wartość dziesiętna, która określa stałą kwotę rabatu od ceny osoby dorosłej za dodatkowe dziecko w tym przedziale. W przypadku tej opłaty używana jest ta sama waluta, która została określona dla stawek za noc. Ogólnie opłata za dziecko należąca do tego przedziału jest obliczana przez odjęcie kwoty zryczałtowanej od „ceny jednostkowej”. Cena jednostkowa została omówiona bardziej szczegółowo w sekcji atrybutu |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant | 0..1 | string | Jeśli określono atrybut Celem jest uzyskanie „ceny jednostkowej”, na podstawie której można obliczyć rzeczywiste obciążenie.
Wartością tego atrybutu musi być
|
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes | 0..1 | RoomTypes | Kontener zawierający listę typów pomieszczeń, do których mają zastosowanie opłaty.
Opłaty są naliczane w przypadku każdego podanego zasobu <RoomType> . Jeśli nie określisz wartości <RoomTypes> , opłaty będą dotyczyć wszystkich sal w danej usłudze. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType | 1..n | RoomType | Określa typ pomieszczenia. Typ pokoju jest zdefiniowany w elemencie <RoomData> w komunikacie Transakcja (dane usługi) i jest przywoływany za pomocą wartości <RoomID> . (Do jej wartości <RoomID> odwołuje się również atrybut InvTypeCode w komunikatach OTA_HotelRateAmountNotifRQ). |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id | 1 | string | Unikalny identyfikator zasobów reklamowych (typ pomieszczenia). Ta wartość jest mapowana na <RoomID> w komunikacie transakcji (dane usługi).
Maksymalna dozwolona liczba znaków to 50. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans | 0..1 | RatePlans | Kontener listy abonamentów, do których mają zastosowanie opłaty.
Jeśli nie podasz <RatePlans> , opłaty będą obowiązywać we wszystkich abonamentach. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan | 1..n | RatePlan | Określa plan stawek. Plan stawek jest definiowany przez połączenie pakietu, stawek i dostępności zgodnie z definicją w danych transakcji (danych obiektu), komunikatach OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz określa identyfikator pakietu. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id | 1 | string | Unikalny identyfikator abonamentu. Ta wartość jest mapowana na wartość PackageID w <PackageData> w komunikacie transakcji (dane usługi) i w atrybucie RatePlanCode w <StatusApplicationControl> zarówno w komunikatach <OTA_HotelRateAmountNotifRQ> , jak i <OTA_HotelAvailNotifRQ> .
Maksymalna dozwolona liczba znaków to 50. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates | 0..1 | StayDates | Kontener dla co najmniej jednego zakresu dat, który określa sposób naliczania opłat. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange | 1..99 | DateRange | Zakres dat określający daty zastosowania promocji. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start | 0..1 | Date | Data rozpoczęcia (na podstawie strefy czasowej usługi) włącznie z datą rozpoczęcia zakresu dat. Ta data nie może być wcześniejsza niż data end . Jeśli nie określisz wartości start , zakres dat będzie w praktyce nieograniczony. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end | 0..1 | Date | Data końcowa z zakresu dat (na podstawie strefy czasowej usługi). Ta data musi być taka sama jak data start lub później. Jeśli nie określisz wartości end , zakres dat będzie nieograniczony, jeśli chodzi o datę zakończenia. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week | 0..1 | string | Dni tygodnia, które są dozwolone w zakresie dat. Jeśli go nie podasz, dozwolone będą wszystkie dni w zakresie dat. Każdy znak w ciągu określa dzień. Na przykład ciąg „MTWHF” wskazuje, że w zakresie dat dozwolone są dni robocze. Prawidłowe znaki to:
Obowiązuje każda kombinacja znaków. |
Przykłady
Opłaty za osobę dorosłą
Opłaty za dodatkowe osoby dorosłe mogą być wyrażone tylko jako kwota zryczałtowana. Poniższy przykład pokazuje komunikat ExtraGuestCharges
, który określa opłaty dla dorosłych:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<StayDates />
<AgeBrackets>
<AdultCharge amount="50" />
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Oto odpowiednie stawki:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="ABC">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
<BaseByGuestAmt AmountAfterTax="120.00"
CurrencyCode="USD"
NumberOfGuests="3"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Gdy użytkownik wyszukuje w Google 4 osoby dorosłe, łączna stawka wynosi: 170 = 120 + 50.
120 pochodzi ze stawki <BaseByGuestAmt>
z: NumberOfGuests="3"
, a 50 z AdultCharge amount="50"
.
Opłaty za dziecko
Opłaty dla dzieci są wyrażone w przedziałach wiekowych do 17 lat i mogą być wyrażone w kwotach zryczałtowanych, procentach lub rabatach.
Poniższy przykład pokazuje komunikat ExtraGuestCharges
, który określa opłaty podrzędne:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<AgeBrackets>
<ChildAgeBrackets>
<ChildAgeBracket max_age="3" percentage="10"
counts_as_base_occupant="never" />
<ChildAgeBracket max_age="10" percentage="30"
counts_as_base_occupant="preferred"/>
<ChildAgeBracket max_age="17" discount_amount="10"
counts_as_base_occupant="always" />
</ChildAgeBrackets>
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Oto odpowiednie stawki:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="12345678"
TimeStamp="2020-05-19T20:50:37-05:00"
Version="3.0">
<RateAmountMessages HotelCode="ABC">
<RateAmountMessage>
<StatusApplicationControl Start="2020-05-18"
End="2020-05-23"
InvTypeCode="RoomID_1"
RatePlanCode="PackageID_1"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="100.00"
CurrencyCode="USD"
NumberOfGuests="1"/>
<BaseByGuestAmt AmountAfterTax="110.00"
CurrencyCode="USD"
NumberOfGuests="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
```
1. Suppose you want the total price for 2 adults and 1 child of 2 years
of age.
Children aged 0-3 are never included in the rate's occupancy,
so here you should take the double occupancy rate and divide by 2 to
get the unit price. Then, multiply by the percentage rate and sum
with the rate to get the total price.
`unit price ` = 110 / 2 = 55
`total price` = 110 + 55 * 0.1 = 115.5
1. Suppose you want the total price for 1 adult and 2 children, both of 5
years of age.
Children aged 4-10 are preferably included in the rate's
occupancy. you should start by looking for a 3 adult rate since both
children are preferably included in the rate's occupancy. Since
that doesn't exist you should fall back to the 2 adult rate and then,
take this rate and divide by two to get the unit price. Finally,
multiply by the percentage rate and sum with the scaled rate to
get the total price.
`unit price` = 110 / 2 = 55
`total price` = 55 + 55 * 0.3 + 55 * 0.3 = 88
1. Suppose you want the total price for 1 adult and 1 child of 17
years of age.
Children aged 11-17 are always included in the rate's occupancy, so,
in this case, take the double occupancy rate and divide by 2 to get
the unit price. Then, deduct it by the discount amount and sum with
the scaled rate to get the total price.
`unit price` = 110 / 2 = 55
`total price` = 55 + (55 - 10) = 100
Ograniczenia obciążeń
Wszystkie typy ograniczeń są opcjonalne i można używać dowolnej ich kombinacji.
Poniższy przykład pokazuje komunikat ExtraGuestCharges
, który określa ograniczenia:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<RoomTypes>
<RoomType id="queen" />
<RoomType id="king" />
</RoomTypes>
<RatePlans>
<RatePlan id="free-wifi" />
<RatePlan id="hot-breakfast" />
</RatePlans>
<StayDates>
<DateRange start="2020-09-01" end="2020-09-14"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="50" />
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Powyższy komunikat określa, że dorośli powinni zapłacić za wszystkie usługi typu „łóżko typu queen” lub „king-size” z abonamentem „bezpłatne-Wi-Fi” lub „śniadanie na ciepło” w okresie od 1 września 2020 r. do 14 września 2020 r.
Nakładające się opłaty
W tej sekcji znajdziesz przykład nieprawidłowego komunikatu, który określa różne opłaty za te same kombinacje dat i usług.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
<HotelExtraGuestCharges hotel_id="ABC" action="overlay">
<ExtraGuestCharge>
<RoomTypes>
<RoomType id="queen" />
</RoomTypes>
<RatePlans>
<RatePlan id="free-wifi" />
</RatePlans>
<StayDates>
<DateRange start="2020-09-01" end="2020-09-14"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="50" />
</AgeBrackets>
</ExtraGuestCharge>
<ExtraGuestCharge>
<RoomTypes>
<RoomType id="queen" />
<RoomType id="king" />
</RoomTypes>
<RatePlans>
<RatePlan id="free-wifi" />
<RatePlan id="hot-breakfast" />
</RatePlans>
<StayDates>
<DateRange start="2020-09-01" end="2020-09-05"/>
</StayDates>
<AgeBrackets>
<AdultCharge amount="20" />
</AgeBrackets>
</ExtraGuestCharge>
</HotelExtraGuestCharges>
</ExtraGuestCharges>
Powyższa wiadomość jest nieprawidłowa, ponieważ pierwszy <ExtraGuestCharge>
określa, że w okresie od 1 do 14 września „queen” i „free-wifi” mają być naliczane opłaty dla kolejnych osób dorosłych (50 osób). Drugie pole <ExtraGuestCharge>
określa, że w przypadku gości w okresie od 1 do 5 września opcje „queen” lub „king” w połączeniu z „bezpłatnym Wi-Fi” lub „śniadaniem na ciepło” powinny być naliczane za dodatkowe osoby dorosłe w wieku 20 września.
Opłaty za pokoje typu „queen” i „darmowe Wi-Fi” pokrywają się w okresie od 1 do 5 września, a za dodatkową osobę dorosłą nie można zapłacić 20 lub 50 USD.
Odpowiedzi
Składnia
Komunikat ExtraGuestChargesResponse
ma taką składnię:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</ExtraGuestChargesResponse>
Elementy i atrybuty
Wiadomość ExtraGuestChargesResponse
zawiera te elementy i atrybuty:
Element / @Atrybut | Wystąpienia | Typ | Opis |
---|---|---|---|
ExtraGuestChargesResponse | 1 | Complex element | Element główny wskazujący powodzenie lub problemy związane z odebranym żądaniem ExtraGuestCharges . |
ExtraGuestChargesResponse / @timestamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
ExtraGuestChargesResponse / @id | 1 | string | Unikalny identyfikator powiązanej wiadomości w aplikacji ExtraGuestCharges . |
ExtraGuestChargesResponse / @partner | 1 | string | Konto partnera, z którego pochodzi ta wiadomość. |
ExtraGuestChargesResponse / Success | 0..1 | Success | Wskazuje, że wiadomość ExtraGuestCharges została przetworzona bez ostrzeżeń, błędów i niepowodzeń.
Każda wiadomość zawiera element |
ExtraGuestChargesResponse / Issues | 0..1 | Issues | Kontener rozwiązania co najmniej jednego problemu, który wystąpił podczas przetwarzania wiadomości ExtraGuestCharges .
Każda wiadomość zawiera element |
ExtraGuestChargesResponse / Issues / Issue | 1..n | Issue | Opis ostrzeżenia, błędu lub błędu napotkanych podczas przetwarzania wiadomości ExtraGuestCharges . Szczegółowe informacje o tych problemach znajdziesz w artykule Komunikaty o błędach stanu pliku danych. |
ExtraGuestChargesResponse / Issues / Issue / @code | 1 | integer | Identyfikator problemu. |
ExtraGuestChargesResponse / Issues / Issue / @status | 1 | enum | Typ napotkanego problemu. Prawidłowe wartości to |
Przykłady
Gotowe
Poniżej znajduje się odpowiedź na pomyślnie przetworzony komunikat ExtraGuestCharges
.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</ExtraGuestChargesResponse>
Problemy
Poniżej znajdziesz odpowiedź na komunikat ExtraGuestCharges
, który nie został przetworzony z powodu błędów.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</ExtraGuestChargesResponse>