Ceny wysyłane za pomocą <OTA_HotelRateAmountNotifRQ>
można modyfikować, aby uwzględniały zarówno dorosłych, jak i dzieci, a także pierwotną liczbę gości. Wiadomość ExtraGuestCharges
umożliwia określenie sposobu obliczania stawek dla tych dodatkowych gości oraz pokoi, cen i dat pobytu, w przypadku których mają one obowiązywać.
Wymagania dotyczące pojemności
Ceny obliczone na podstawie wiadomości ExtraGuestCharges
są ważne tylko wtedy, gdy wszystkie wymagania dotyczące pojemności są spełnione. Więcej informacji znajdziesz w sekcji Transakcja (dane usługi).
Żądania
Składnia
Wiadomość ExtraGuestCharges
używa tej 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
zawiera te elementy i atrybuty:
Element / @Attribute | Wystąpienia | Typ | Opis |
---|---|---|---|
ExtraGuestCharges | 1 | Complex element | Element główny tego komunikatu. |
ExtraGuestCharges / @partner | 1 | string | Konto partnera, na którym jest wysyłana wiadomość. Ta wartość ciągu znaków to wartość Partner key podana na
stronie Ustawienia konta w Hotel Center.
Uwaga: jeśli masz backend, który udostępnia pliki danych dla wielu kont, ta wartość musi być zgodna z wartością atrybutu |
ExtraGuestCharges / @id | 1 | string | Unikalny identyfikator tego komunikatu żądania. 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 na opłaty za jedną usługę. |
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id | 1 | string | Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą elementu
<id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też widoczny w Hotel Center. |
ExtraGuestCharges / HotelExtraGuestCharges / @action | 0..1 | enum | Określa sposób zastosowania aktualizacji. Obsługiwany jest tylko format overlay , a domyślnym jest nakładka. Wszelkie wcześniejsze obciążenia dotyczące tej usługi zostaną anulowane przed zastosowaniem aktualizacji. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge | 0..99 | ExtraGuestCharge | Pojedynczy zestaw opłat za usługę. Mogą one obejmować ograniczenia dotyczące sposobu naliczania opłat i sposobu ich obliczania w zależności od wieku lub kategorii gości. Każdy element |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets | 1 | AgeBrackets | Kontenery z przedziałami wiekowymi służące do obliczania opłat według wieku lub kategorii gości. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge | 0..1 | AdultCharge | Kontenery dla dodatkowej opłaty za osobę dorosłą. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount | 0..1 | float | Dodatnia wartość dziesiętna, która określa stałą kwotę do zapłaty za dodatkowego dorosłego. Ta opłata jest naliczana w tej samej walucie co opłaty za nocleg. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets | 0..1 | ChildAgeBrackets | Kontener na dodatkowe opłaty za dzieci. Te przedziały wiekowe mogą obejmować tylko przedział wiekowy 0–17 lat. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket | 1..99 | ChildAgeBracket | Opłata, która dotyczy dzieci w określonym przedziale wiekowym. Te wartości powinny być uporządkowane od najniższej max_age do najwyższej max_age . Kwotę do obciążenia można określić za pomocą właściwości amount , percentage lub discount_amount . W przypadku każdego elementu <ChildAgeBracket> należy podać dokładnie jeden z tych atrybutów.
|
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age | 1 | integer | Maksymalny wiek, w przypadku którego mogą obowiązywać opłaty określone w punkcie <ChildAgeBracket> . Minimalny wiek to 0, jeśli przed tym elementem nie ma innych elementów <ChildAgeBracket> . W przeciwnym razie jest o 1 większy niż maksymalny wiek w poprzedniej grupie. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity | 1 | boolean | Wartość logiczna wskazująca, czy dziecko w tym przedziale wiekowym powinno być wliczane do łącznej liczby miejsc i liczby miejsc dla dzieci. Te pojemności można ustawić za pomocą transakcji(danych usługi). Na przykład niemowlęta poniżej określonego wieku mogą nie być wliczane do limitu miejsc dla dzieci. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount | 0..1 | float | Wartość dodatnia w postaci dziesiętnej, która określa stałą kwotę do zapłaty za dodatkowe dziecko w tej grupie. Ta opłata jest naliczana w tej samej walucie co opłaty za noclegi. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage | 0..1 | float | Wartość dziesiętna z zakresu 1–99, która określa procent ceny za osobę dorosłą, który powinien zostać naliczony za dodatkowe dziecko w danej grupie. Ta opłata jest naliczana w tej samej walucie co opłaty za nocleg. Szczegółowe informacje o sposobie obliczania ceny dla dorosłych znajdziesz w sekcji |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount | 0..1 | float | Dodatnia wartość dziesiętna, która określa stały rabat na dodatkowe dziecko w tej grupie. Ta opłata jest naliczana w tej samej walucie co opłaty za nocleg. Ogólnie opłata za dziecko w tym przedziale jest obliczana przez odjęcie stałej kwoty od „ceny jednostkowej”. Cena jednostkowa jest bardziej szczegółowo omawiana w sekcji dotyczącej atrybutu |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant | 0..1 | string | Jeśli atrybut Celem jest uzyskanie „ceny jednostkowej”, na podstawie której można obliczyć rzeczywiste obciążenie.
Wartość tego atrybutu musi być
|
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes | 0..1 | RoomTypes | Kontener z listą typów pokoi, do których mają zastosowanie opłaty.
Opłaty są naliczane za każde <RoomType> określone. Jeśli <RoomTypes> nie jest określony, opłaty obowiązują we wszystkich pokojach w obiekcie. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType | 1..n | RoomType | Określa typ pokoju. Typ pokoju jest zdefiniowany w elemencie <RoomData> w wiadomości Transakcja (dane obiektu) i jest do niego odwoływany za pomocą wartości <RoomID> . (wartość atrybutu <RoomID> jest też używana w atrybucie InvTypeCode w wiadomościach OTA_HotelRateAmountNotifRQ). |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id | 1 | string | Unikalny identyfikator asortymentu (typ pokoju). Ta wartość jest mapowana na <RoomID> w wiadomości dotyczącej transakcji (danych usługi).
Maksymalna liczba znaków to 50. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans | 0..1 | RatePlans | Kontener z listą abonamentów, do których mają zastosowanie opłaty.
Jeśli nie podasz wartości <RatePlans> , opłaty będą obowiązywać we wszystkich planach cenowych. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan | 1..n | RatePlan | Określa plan taryfowy. Pakiet usług jest zdefiniowany przez kombinację pakietu, stawek i dostępności, jak określono w transakcjach (dane obiektu), wiadomościach OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz identyfikatorze PackageID. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id | 1 | string | Unikalny identyfikator planu cenowego. Ta wartość jest mapowana na wartość atrybutu PackageID w elemencie <PackageData> w komunikacie Transaction (Property Data) oraz na atrybut RatePlanCode w elemencie <StatusApplicationControl> w obu komunikatach <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ> .
Maksymalna liczba znaków to 50. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates | 0..1 | StayDates | Kontener dla co najmniej 1 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, w których ma obowiązywać promocja. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start | 0..1 | Date | Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end . Jeśli nie podasz wartości start , zakres dat będzie obejmował wszystkie daty. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end | 0..1 | Date | Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end , zakres dat będzie nieograniczony pod względem daty zakończenia. |
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week | 0..1 | string | Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każda litera w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze. Prawidłowe znaki:
Dozwolona jest dowolna kombinacja znaków. |
Przykłady
Opłaty za treści dla dorosłych
Opłaty za dodatkowych dorosłych mogą być wyrażone tylko jako kwoty stałe. Poniższy przykład pokazuje komunikat ExtraGuestCharges
, który informuje o opłatach za treści 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 wyniesie 170 = 120 + 50.
Wartość 120 pochodzi z poziomu <BaseByGuestAmt>
z wartością NumberOfGuests="3"
, a wartość 50 – z poziomu AdultCharge amount="50"
.
Opłaty za element podrzędny
Opłaty za dzieci są wyrażane w przedziałach wiekowych do 17 roku życia i mogą być wyrażane w kwotach stałych, procentach lub rabatach.
Poniższy przykład pokazuje wiadomość ExtraGuestCharges
, która zawiera opłaty za dzieci:
<?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 dotyczące opłat
Wszystkie typy ograniczeń są opcjonalne i można stosować dowolną ich kombinację.
Przykład poniżej 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ższe powiadomienie określa, że w przypadku dorosłych należy obciążyć kosztami każdy produkt, który ma typ pokoju „queen” lub „king” z planem taryfowym „bezpłatny internet Wi-Fi” lub „ciepłe śniadanie” w dniach od 1 do 14 września 2020 r.
Opłaty nakładające się na siebie
Ta sekcja zawiera przykład nieprawidłowego komunikatu, który określa różne opłaty za te same kombinacje dat i produktów.
<?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ższy komunikat jest nieprawidłowy, ponieważ pierwszy <ExtraGuestCharge>
określa, że w przypadku pokoju „queen” i pakietu „bezpłatny internet Wi-Fi” w dniach 1–14 września należy obciążyć dodatkowych dorosłych opłatą w wysokości 50 PLN. Drugi <ExtraGuestCharge>
określa, że w przypadku pokoju typu „queen” lub „king” z opcją „bezpłatny dostęp do Wi-Fi” lub „ciepłe śniadanie” w dniach 1–5 września należy dodać do opłaty za pobyt dorosłych 20.
W przypadku pobytu w dniach 1–5 września występują nakładające się opłaty za pokój „queen” i pakiet „bezpłatne Wi-Fi”. Występuje też konflikt dotyczący tego, czy za dodatkową osobę dorosłą należy naliczyć 20 zł czy 50 zł.
Odpowiedzi
Składnia
Komunikat ExtraGuestChargesResponse
używa tej 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 / @Attribute | Wystąpienia | Typ | Opis |
---|---|---|---|
ExtraGuestChargesResponse | 1 | Complex element | Element główny wskazujący, czy otrzymane żądanie ExtraGuestCharges zostało zrealizowane, czy też wystąpiły z nim problemy. |
ExtraGuestChargesResponse / @timestamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
ExtraGuestChargesResponse / @id | 1 | string | Unikalny identyfikator powiązany z wiadomością ExtraGuestCharges . |
ExtraGuestChargesResponse / @partner | 1 | string | Konto partnera, na którym jest wysyłana wiadomość. |
ExtraGuestChargesResponse / Success | 0..1 | Success | Wskazuje, że wiadomość ExtraGuestCharges została przetworzona bez ostrzeżeń, błędów ani niepowodzeń.
W każdej wiadomości występuje element |
ExtraGuestChargesResponse / Issues | 0..1 | Issues | Kontener dla co najmniej 1 problemu napotkanego podczas przetwarzania wiadomości ExtraGuestCharges .
W każdej wiadomości występuje element |
ExtraGuestChargesResponse / Issues / Issue | 1..n | Issue | Opis ostrzeżenia, błędu lub niepowodzenia napotkanego podczas przetwarzania wiadomości ExtraGuestCharges . Szczegółowe informacje o tych problemach znajdziesz w komunikatach 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
Sukces
Poniżej znajduje się odpowiedź na pomyślnie przetworzoną wiadomość 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 przedstawiamy odpowiedź na wiadomość ExtraGuestCharges
, która nie została przetworzona 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>